如果两个或多个线程正在等待某个事件,SetEvent是否会取消阻止其中一个或所有线程(或其中一些)?
答案 0 :(得分:4)
这取决于它是手动还是自动重置事件。如果是手动复位,则可以释放多个线程,直到复位为止。如果它是自动重置,则只会发出一个信号。
答案 1 :(得分:2)
唤醒一个线程后,将重置自动重置事件。手动复位甚至将保持设置,直到它复位,因此它可以唤醒任意数量的线程。如果你想确保等待它的所有线程只被唤醒一次(但是如果你关心它,它会指出一个可能的设计问题),那么知道何时重置它有点困难。