【发布时间】:2010-11-10 07:53:17
【问题描述】:
在 .NET 中,是否有一种方法(例如事件)来检测控制台应用程序何时退出?我需要清理一些线程和COM 对象。
我正在从控制台应用程序运行一个没有表单的消息循环。我正在使用的DCOM 组件似乎要求应用程序泵送消息。
我尝试将处理程序添加到 Process.GetCurrentProcess.Exited 和 Process.GetCurrentProcess.Disposed。
我也尝试向 Application.ApplicationExit 和 Application.ThreadExit 事件添加处理程序,但它们没有触发。也许那是因为我没有使用表单。
【问题讨论】:
-
如果您首先设置 Process.EnableRaisingEvents = true,则应该触发 Process.GetCurrentProcess().Exited 事件;否则,它不会触发。
-
@Triynko 怎么样? Process.Exited 在进程退出后被触发。如果退出自己的应用程序,则根本不会执行任何代码。很没用的imo..
-
用 C# 完成这篇文章结尾附近的完整工作示例
标签: .net console-application complexity-theory