2011-06-23 73 views
2

關閉程序的主窗口後,進程仍在後臺運行。 我該如何檢查這個奇怪問題的原因是什麼?程序結束時未終止進程

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

+0

請問你默認的窗口/應用程序中啓動充當「默認窗口」或許隱藏初始窗口的窗口終止?然後它可能只關閉子窗口。 – Joe

回答

5

首先檢查您的應用程序的ShutdownMode屬性的值是否等於ShutdownMode.OnMainWindowClose - 如果不是,請檢查實際值是否阻止應用程序關閉。

如果這樣不能解決問題,那麼您在主窗口關閉後仍然有一個或多個非後臺線程正在運行,從而阻止進程關閉。打入調試器,看看有多少線程還活着,他們在做什麼;這將導致您找到解決方案。

+0

找到了!它被設置爲OnLastWindowClose。謝謝:) –

+0

@GiladNaaman:HTH :) – Jon

1

一種可能性是,你創造出沒有被設置爲後臺線程或做你正在調用的代碼;即使在關閉主線程後,這可能會使您的進程「活着」。

確保在退出之前終止所有線程,或者將IsBackground屬性設置爲true。

2

要查看當前正在運行的線程並停止終止應用程序,只需在Visual Studio中按「Break All」並查看光標停止的位置。

注意:您可以強制應用程序通過調用Environment.Exit();

相關問題