【发布时间】:2013-10-25 07:25:28
【问题描述】:
假设有 5 个线程,T1、T2、T3、T4 和 T5,其中 5 个当前正在运行。我的要求是停止所有 4 个线程,以防 5 个线程中的任何一个出现异常。这怎么可能实现。我正在使用 c# 4.0
【问题讨论】:
-
你能在这里放一些代码吗?,
-
创建一个所有线程都可以访问的布尔标志(类变量)..如果有异常设置该标志..所有其他线程检查该标志将相应停止
-
你能有一个带有“Crasched”标志的单例类(或静态类)吗?该标志应由具有异常的线程之一在某些 catch 语句中设置。然后其他线程应定期轮询该标志。或者,您可以调用一个“ThreadFactoryClass”来创建线程。创建线程时,应将其放入 crated 线程列表中。当您的一个线程崩溃时,您在“ThreadFactoryClass”上调用“StopAllThreads”方法。该方法将遍历列表并在所有线程上调用 Abort。
-
活动不是更合适吗?在
catch语句中调用事件并让该事件取消所有线程。
标签: c# .net multithreading c#-4.0