我有几个长期运行的任务对象。我希望他们都无限期地继续运行。其中一项任务的工作是自我监控系统。如果在正常操作条件之外发生某些事情,我希望它能够停止运行并以某种方式发出其他任务也停止运行的信号。仅使用 Task.WaitAny(),停止一个线程而其他线程将停止就足够了,还是那些其他任务会无限期地继续运行?
问问题
722 次
1 回答
3
除非您明确处理取消,否则这些任务将继续运行。
处理此问题的首选方法是使用 .NET 4 中新的协作取消支持。
正常的方法是在任务失败/故障时对运行的每个任务进行延续。然后它可能CancelationTokenSource
会被取消。每个任务可以偶尔检查它是否应该因为请求取消而中止。
于 2012-05-11T00:15:42.633 回答