关闭程序的主窗口后,该过程仍在后台运行。 如何查看这个奇怪问题的原因是什么?
(我不知道我的程序代码的哪一部分是相关的)
答案 0 :(得分:5)
首先检查应用程序的ShutdownMode
属性的值是否等于ShutdownMode.OnMainWindowClose
- 如果不是,请查看实际值是否阻止应用程序关闭。
如果这不能解决问题,那么在主窗口关闭后仍有一个或多个非后台线程仍在运行,从而阻止进程关闭。闯入调试器,看看有多少线程仍处于活动状态,以及它们正在做什么;这将引导您找到解决方案。
答案 1 :(得分:2)
要查看当前正在运行的线程并停止应用程序终止,只需在Visual Studio中按“全部中断”,然后查看光标停止的位置。
注意:您可以通过调用Environment.Exit();
答案 2 :(得分:1)
一种可能性是您创建未设置为后台的线程,或者您正在调用执行此操作的代码;即使关闭主线程,也可能使您的进程“活跃”。
确保在退出之前终止所有线程,或者将IsBackground
属性设置为true。
答案 3 :(得分:1)
另一个原因可能是有人将Application.ShutdownMode
设置为OnExplicitShutdown
。