如果有子线程打开消息框,如何安全地关闭主窗体

时间:2013-12-18 09:46:22

标签: c#

在我的C#代码中有一个主窗口,它启动多个线程。这些线程中的一些会导致消息框显示。当我关闭主窗口时,我需要所有线程,我开始安全地中止。我尝试通过将线程添加到列表然后中止它们。但每次抛出ThreadAbort异常。 请建议我这样做的方法

1 个答案:

答案 0 :(得分:2)

Thread.Abort 的目的是提升ThreadAbortException。这会杀死线程。

From MSDN

  

Thread.Abort方法

     

在调用它的线程中引发ThreadAbortException,以开始终止线程的过程。调用此方法通常会终止该线程。

使用Thread.Abort不会以干净的方式终止线程。停止线程的常用安全解决方案是在该线程上创建一个volatile bool停止标志,您的线程会不时检查该标志是否应该停止。