c#线程同步 - AutoResetEvent

Gre*_*oud 6 .net c# multithreading

我一直在使用AutoResetEvent在线程之间进行同步.

  • 一些线程(AF)调用autoresetevent.WaitOne(); 在等待另一个线程(X)完成其工作
  • 拥有autoresetevent的线程(X)执行其工作,然后调用.Set();

但是,只有一个等待线程(AF)被解除阻塞. - 当线程(X)完成它的工作时,我怎样才能让它们全部解锁?

我想我使用了错误的同步原语 - 我应该使用什么以及如何使用?

代码样本将是理想的

Ern*_*rno 4

ManualResetEvent是您正在寻找的吗?

它将保持设置状态,直到被某个线程重置。

在代码中的某个地方,您必须知道何时重置它。这可能是一个简单的计数器或派生线程的集合。