奇怪的問題。我殺死了主線程,但是當程序結束時,它仍然在this.Close()
之後處理代碼。如何殺死主線程?
有關如何阻止該問題的任何想法?
MessageBox.Show("Servers overloaded. Exiting.");
this.Close();
//...other code that processes even after it closes...
奇怪的問題。我殺死了主線程,但是當程序結束時,它仍然在this.Close()
之後處理代碼。如何殺死主線程?
有關如何阻止該問題的任何想法?
MessageBox.Show("Servers overloaded. Exiting.");
this.Close();
//...other code that processes even after it closes...
與ASP.Net的Response.End()
,要求Close
不會中止線程。
您需要在致電Close()
後添加return;
退出該方法。
但是這引發了一個問題,如果你不想執行它,爲什麼在Close()方法後面有任何代碼?在Close()之後放置返回將導致編譯器警告關於無法訪問的代碼。 – Josh 2010-02-21 20:16:02
雖然我不認爲這是更好的方法,但它不會回答這個問題... – 2010-02-21 20:21:18
關閉窗口不會停止線程。可以使用Environment.Exit立即關閉。
爲什麼會停在Close()
?它仍然會退出你的方法 - 大多數事情如Close()
將涉及發送一些東西到Windows消息隊列並進行處理。如果你需要退出NOW,那麼也許Environment.FailFast
...
你是如何殺死主線程的? Thread.Abort的()? – 2010-02-21 19:57:23
WPF?的WinForms? Asp.net? – Oded 2010-02-21 19:57:30
其桌面應用程序。我使用this.Close()來殺死主線程。我只有一個線程在運行。 – 2010-02-21 19:58:39