流程未在程序结束时终止

时间:2011-06-23 16:35:06

标签: c# .net wpf

关闭程序的主窗口后,该过程仍在后台运行。 如何查看这个奇怪问题的原因是什么?

(我不知道我的程序代码的哪一部分是相关的)

4 个答案:

答案 0 :(得分:5)

首先检查应用程序的ShutdownMode属性的值是否等于ShutdownMode.OnMainWindowClose - 如果不是,请查看实际值是否阻止应用程序关闭。

如果这不能解决问题,那么在主窗口关闭后仍有一个或多个非后台线程仍在运行,从而阻止进程关闭。闯入调试器,看看有多少线程仍处于活动状态,以及它们正在做什么;这将引导您找到解决方案。

答案 1 :(得分:2)

要查看当前正在运行的线程并停止应用程序终止,只需在Visual Studio中按“全部中断”,然后查看光标停止的位置。

注意:您可以通过调用Environment.Exit();

强制终止应用程序

答案 2 :(得分:1)

一种可能性是您创建未设置为后台的线程,或者您正在调用执行此操作的代码;即使关闭主线程,也可能使您的进程“活跃”。

确保在退出之前终止所有线程,或者将IsBackground属性设置为true。

答案 3 :(得分:1)

另一个原因可能是有人将Application.ShutdownMode设置为OnExplicitShutdown