我有一个包含很多线程的控制台应用程序.有些线程可以监视某些条件,如果它们是真的则终止程序.这种终止可以随时发生.
我需要一个可以在程序关闭时触发的事件,以便我可以清理所有其他线程并正确关闭所有文件句柄和连接.我不确定.NET框架中是否已经内置了一个,所以我在编写自己的框架之前就已经问过了.
我想知道是否有一个事件:
MyConsoleProgram.OnExit += CleanupBeforeExit;
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来在手动关闭控制台应用程序时触发一段代码(用户关闭窗口).一直在尝试:
AppDomain.CurrentDomain.ProcessExit +=
new EventHandler(CurrentDomain_ProcessExit);
Run Code Online (Sandbox Code Playgroud)
但如果手动关闭,上述操作无效.
有没有办法使用.Net调用或我是否需要导入内核DLL并以这种方式执行?
我发现如果我捕获异常e,e.innerException可能为null.
在catch块的任何可能情况下,e.StackTrace也可能为null吗?
try {
}
catch(Exception e)
{
//can e.StackTrace be null here?
}
Run Code Online (Sandbox Code Playgroud)