控制台关闭的特殊处理

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)模式就能执行了,这个原因给蒙了.....大家有谁知道为什么的话,麻烦告诉我一下。

原文地址:https://www.cnblogs.com/magic_evan/p/2145953.html