C# 屏障超时

C# Barrier timeout

我正在 运行 并行执行一些任务,通常一次执行 4 个任务。对于一个测试,我需要一个障碍,所以它们在那个时候是同步的。

Barrier 的配置类似于 new Barrier(4);。问题是有时候,可能会发生异常,导致任务在某个点停止,不再到达Barrier。

这会让Barrier永远等待,我该如何解决? 是否可以配置一个超时来释放屏障,并测试在那一刻之前已经达到它的那些?

如果我没理解错的话,即使第 4 个任务失败,您也希望 3 个任务继续。在这种情况下,您可以使用 SignalAndWait(Int32) 重载来仅在指定的时间段内等待其他参与者。