Application: MyApp.exe Framework Version: v4.0.30319 Description:
The process was terminated due to an unhandled exception. Exception
Info: System.NullReferenceException Stack:
和:
Faulting application name: Gateway.exe,version: 1.0.0.0,time stamp:
0x4e284101 Faulting module name: unknown,version: 0.0.0.0,time
stamp: 0x00000000 Exception code: 0xc0000005 Fault offset: 0x004d41ce
Faulting process id: 0xf00 Faulting application start time:
0x01cc47b827e19a6e Faulting application path:
C:\dev\MyApp.exe Faulting module path:
unknown Report Id: 689c1caa-b3ab-11e0-ba1b-00247e777f12
Google已经通过SetConsoleCtrlHandler透露了一些bugs和issues,所以我想知道这是否是一场失败的战斗.
解决方法
SetConsoleCtrlHandler(Handler,true);
这与完全相同
SetConsoleCtrlHandler(new EventHandler(Handler),true);
假设您使用了链接代码中的类型.该代码的作者通过使_handler成为静态变量来仔细避免此问题.与前两行代码创建的临时委托实例相反.将其存储在静态变量中可确保它在程序的生命周期内保持引用.在这个特殊情况下要做的事情,因为你实际上对事件感兴趣,直到程序结束.