• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
4℃空间
众人笑我痴 我笑他人看不懂
   首页    新随笔    联系   管理    订阅  订阅

控制台关闭的特殊处理

C#处理控制台关闭的时候调用了

public delegate bool ConsoleCtrlDelegate(int ctrlType);

[DllImport("kernel32.dll")]
        private static extern bool SetConsoleCtrlHandler(ConsoleCtrlDelegate myHandler, bool add);

static Main()
{
ConsoleCtrlDelegate consoleDelegete = new ConsoleCtrlDelegate(MyHandler);
SetConsoleCtrlHandler(consoleDelegete, true);
}

private static bool MyHandler(int ctrlType)
{
//todo
     return false;
}

相信很多人都会是这样调用。

不知道大家这样调用的时候,是不是在发布时碰到过关闭控制台时,MyHandler函数并没有执行(不管大家有没有遇到,我反正遇到了.)。

于是调来调都没发现有啥问题。

最终,居然将发布(Release)模式改为调试(Debug)模式就能执行了,这个原因给蒙了.....大家有谁知道为什么的话,麻烦告诉我一下。

posted @ 2011-08-19 16:51  magic_evan  阅读(296)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3