将新线程注册到已定义的屏障

时间:2018-10-02 19:48:40

标签: c# multithreading barrier

是否可以将线程添加到已预定义的障碍中?

场景:我在某个时间点有N个线程,并且代码声明了Barrier以便处理它们。

问题是,有时我可能需要在该屏障实例内部处理另一个新线程,但是该屏障已经仅使用N个线程声明了。

示例:

barrier = new Barrier(N, (sprint) => { 
       Console.WriteLine($"Current sprint: {sprint.CurrentPhaseNumber}")
});

声明之后,我需要使用N + 1个线程再次更新它,有什么建议吗?

1 个答案:

答案 0 :(得分:2)

有关屏障的完整文档在这里:https://docs.microsoft.com/en-us/dotnet/standard/threading/barrier

简而言之,您可以随时通过分别调用AddParticipantRemoveParticipant来添加或删除参与者。