回答
首先檢查您的應用程序的ShutdownMode
屬性的值是否等於ShutdownMode.OnMainWindowClose
- 如果不是,請檢查實際值是否阻止應用程序關閉。
如果這樣不能解決問題,那麼您在主窗口關閉後仍然有一個或多個非後臺線程正在運行,從而阻止進程關閉。打入調試器,看看有多少線程還活着,他們在做什麼;這將導致您找到解決方案。
找到了!它被設置爲OnLastWindowClose。謝謝:) –
@GiladNaaman:HTH :) – Jon
一種可能性是,你創造出沒有被設置爲後臺線程或做你正在調用的代碼;即使在關閉主線程後,這可能會使您的進程「活着」。
確保在退出之前終止所有線程,或者將IsBackground
屬性設置爲true。
另一個原因可能是有人將Application.ShutdownMode
設置爲OnExplicitShutdown
。
要查看當前正在運行的線程並停止終止應用程序,只需在Visual Studio中按「Break All」並查看光標停止的位置。
注意:您可以強制應用程序通過調用Environment.Exit();
- 1. 當等待()結束時進程終止
- 2. 使用進程時程序不終止
- 3. 當Linux中的另一個進程結束時終止後臺進程
- 4. 程序結束時進程返回0xC0000005
- 5. 程序終止時用`exec`終止進程
- 6. C#進程和線程終止時間結束 - 可等待計時器
- 7. 結束Windows應用程序(但不是簡單地終止進程)
- 8. 當終端會話結束時,爲什麼所有進程都被終止?
- 9. 父進程在C#中終止時如何終止子進程
- 10. 後臺進程在其父進程終止時被終止?
- 11. Apache Ant:螞蟻進程終止時終止進程<exec>
- 12. 如何檢查Linux進程以確定進程何時/何時終止/終止?
- 13. 在VB6中創建子進程,當程序終止時自動終止
- 14. 異常後未終止進程
- 15. 進程不終止
- 16. 終止進程 - AHK
- 17. WKWebView進程終止
- 18. 終止子進程
- 19. 如何通過ssh啓動進程,在會話結束時不會終止?
- 20. 當程序執行結束時導致VB進程不能結束的形式
- 21. 線程結束,結束整個程序?
- 22. 在C中終止子進程後,父進程未完成
- 23. 當主進程被終止時,bash子進程不會被終止
- 24. BlackBerry - 未捕獲的異常:應用程序未響應;進程已終止
- 25. BlackBerry - 未捕獲的異常:應用程序(353)未響應;進程已終止
- 26. Ant執行任意程序並在junit任務結束時終止
- 27. 應用程序安裝程序異常進程終止(android)
- 28. 帶停止按鈕的結束程序
- 29. Boost線程終止程序?
- 30. Java程序與Java結果終止:137
請問你默認的窗口/應用程序中啓動充當「默認窗口」或許隱藏初始窗口的窗口終止?然後它可能只關閉子窗口。 – Joe