代码之家  ›  专栏  ›  技术社区  ›  Shahar Shokrani

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

  •  0
  • Shahar Shokrani  · 技术社区  · 7 年前

    有没有办法在已经预先定义的屏障上添加线程?

    场景:我在某个时间点有n个线程,代码声明了 Barrier 为了处理它们。

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

    例子:

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

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

    1 回复  |  直到 7 年前
        1
  •  2
  •   Kevin Gosse    7 年前

    关于屏障的完整文件如下: https://docs.microsoft.com/en-us/dotnet/standard/threading/barrier

    简而言之,您可以通过分别调用 AddParticipant RemoveParticipant .