如何杀死主线程?
奇怪的问题。我杀死了主线程,但是当程序结束时,它仍然在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
为什么会停在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