我坚持选择同步原语。
情况如此: 我有一些线程池,它们处于不定式循环中,并等待某些事件。另一个应该调用此事件的线程。当事件触发时,所有wating线程都应进行一次迭代并再次回退等待事件。
我应该使用manualResetEvent吗?我无法理解,有没有任何保证,如果我在控制线程中写这样的东西
event.Set();
event.Reset();
所有等待的线程都进行迭代,所有等待的线程只进行一次,而不是两次三次迭代。
或者我应该为我的案子使用另一个原语?
答案 0 :(得分:1)
在循环线程中使用Monitor.Wait(someObject)
,在事件提升线程中使用Monitor.PulseAll(someObject)
。