在.NET中,是否有一种方法(如事件)用于检测控制台应用程序何时退出?我需要清理一些线程和COM对象.
我正在从控制台应用程序运行一个没有表单的消息循环.我正在使用的DCOM组件似乎要求应用程序泵消息.
我已经尝试向Process.GetCurrentProcess.Exited和Process.GetCurrentProcess.Disposed添加一个处理程序.
我还尝试向Application.ApplicationExit和Application.ThreadExit事件添加处理程序,但它们没有触发.也许那是因为我没有使用表格.
我在工作中维护了许多控制台应用程序,我在其中一些人注意到的一件事是他们调用了Environment.Exit(0).
示例程序如下所示:
public class Program
{
public static void Main(string[] args)
{
DoStuff();
Environment.Exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白原始程序员的意图是什么?在我看来,即使没有Environment.Exit语句,程序应该退出就好了.也就是说,对于其中一个程序,它的控制台窗口即使在应该关闭之后仍然存在,所以我真的不确定那里发生了什么......
我在这里错过了什么吗?或者是否有理由在此实例中调用Environment.Exit?