当我关闭我的程序主窗口后,进程仍在后台运行。如何检查这个奇怪问题的原因?
(我不知道我的程序代码的哪一部分是相关的)
首先检查应用程序的ShutdownMode
属性的值是否等于ShutdownMode.OnMainWindowClose
--如果不是,请查看实际值是否阻止应用程序关闭。
如果这不能解决问题,则在主窗口关闭后,您可能仍有一个或多个非后台线程在运行,从而阻止进程关闭。中断调试器并查看还有多少个线程仍然存活以及它们正在做什么;这将带领您找到解决方案。
要查看当前正在运行并阻止应用程序终止的线程,只需在Visual Studio中按“中断所有”按钮,并查看光标停留的位置。
注意:您可以通过调用Environment.Exit();
来强制终止应用程序。
可能的原因是您创建了未设置为后台的线程或调用了执行此操作的代码;这可能会使您的进程在关闭主线程后仍然“活动”。
确保在退出之前终止所有线程或将它们的IsBackground
属性设置为true。