当我使用
时int event_idx = WaitHandle.WaitAny(ExportEvents.ToArray());
如果事件在WaitAny
函数调用之前处于信号状态,则WaitAny
函数将:
答案 0 :(得分:3)
当发出任何句柄信号时,此方法返回。
请注意,当手柄 发出信号时,它会返回,而不是 发出信号时。这意味着如果某个句柄已经发出信号,则该方法立即返回。
当然,在通话之前手柄可能处于信号状态,但由于竞争条件,手机在通话期间没有发出信号。
答案 1 :(得分:1)
这取决于等待句柄的类型以及是否有其他线程在等待。如果所有事件都有手动重置特性,那么结果将是imedidiate。如果有自动重置事件,并且另一个线程正在等待相同的事件,那么知道哪一个将被发信号是一场竞赛。