这是我的场景:我有一个控制台应用程序,我正在尝试使用以下代码处理控制台的“关闭事件”:
static void Main(string[] args)
{
SetConsoleCtrlHandler(new HandlerRoutine(ConsoleCtrlCheck), true);
.......
}
[DllImport("Kernel32")]
public static extern bool SetConsoleCtrlHandler(HandlerRoutine Handler, bool Add);
public delegate bool HandlerRoutine(CtrlTypes CtrlType);
public enum CtrlTypes
{
CTRL_C_EVENT = 0,
CTRL_BREAK_EVENT,
CTRL_CLOSE_EVENT,
CTRL_LOGOFF_EVENT = 5,
CTRL_SHUTDOWN_EVENT
}
private static bool ConsoleCtrlCheck(CtrlTypes ctrlType)
{
writeOnLogFile("Closed Manually");
logWriter.WriteLine();
logWriter.WriteLine();
logWriter.Close();
return true;
}
有时,当我使用“X”按钮关闭控制台时,这是显示给我的页面:No Source available。我尝试查看堆栈调用,但没有什么有用的。那么,我该如何解决呢?