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

本文关键字:安全 窗体 何安全 线程 消息 | 更新日期: 2024-10-24 14:27:27

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

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

Thread.Abort的目的就是生成一个ThreadAbortException。这会扼杀线程。

来自MSDN:

线程中止方法

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

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