如果你调用EventWaitHandle.Set()X次,如果X线程尚未启动,它是否会发出X线程的信号?

Ori*_*ian 5 c# multithreading

换句话说,我有一个启动并waitHandle.Set()多次调用的线程.然后我开始几个线程,每个线程都在等待WaitHandle.它们的X是否会发出信号,其中X是原始线程调用的次数waitHandle.Set()

是否有一种结构支持我想要更紧密地完成的任务?

Ric*_*ard 9

也许,但可能不是.

只能设置或取消设置事件,如果没有任何事情可以取消设置事件,则重复调用Set将不会更改其状态,除非它是自动重置事件并且至少有一个线程在等待它.通过手动重置事件,任何等待(或开始等待)的线程都将被释放,直到某些事件取消设置.

我想你实际上想要一个信号量,它有一个计数并支持设置n次以释放n个线程(即使其中一些线程只在一些调用set之后才开始等待).