2012-04-25 100 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

编号线程终止是合作的。