2012-04-25 98 views
2

我創建了一個運行多個後臺線程的表單。我添加了另一個處理異常和錯誤的類(如果有的話)。當代碼運行時,如果發生錯誤應該強制應用程序關閉,我可以使用Application.Exit()?這是否會殺死後臺線程?Application.Exit()是否會終止後臺線程?

+1

http://stackoverflow.com/questions/3689564/threads-processes-and-application-exit – zimdanen 2012-04-25 20:40:15

+0

你想殺死後臺線程嗎? – Servy 2012-04-25 20:44:22

+0

另外,你爲什麼問我們?爲什麼不運行它並親自查看。 – Servy 2012-04-25 20:45:34

回答

5

不,它不會。 Application.Exit()只會強制Windows消息泵發佈Quit消息,這將終止您的應用程序的主線程。但是,該進程本身將繼續運行,直到後臺線程完成。

更新:正如評論者已正確指出,如果您的線程的IsBackground屬性設置爲True,通過Application.Exit()終止主線程將關閉該過程。

+3

其他前景線程將阻止進程終止,後臺線程不會。 – Servy 2012-04-25 20:44:40

+0

你確定嗎?我認爲背景*線程(即那些與'IsBackground ==真正'不會阻止應用程序終止,並在關機時強制終止。 – CodesInChaos 2012-04-25 20:44:56

+0

謝謝所以當我使用Application.Exit所有後臺線程將不必擔心。終止 – Mohamed 2012-04-25 23:28:50

0

編號線程終止是合作的。