.NET框架方法WaitHandle.WaitAny(WaitHandle[])
等待多个句柄并返回(如果已设置其中任何句柄)。返回值是传递的数组的设置句柄的索引。
如果句柄是AutoResetEvent
,当有人等待它时它会自动重置并且现在已被解锁。
如果在等待时设置了多个句柄,WaitAny
是否会消耗并重置其他信号,或者其他句柄是否保持设置,并在下次调用时返回另一个索引?如果它重置所有句柄,我怎么知道其他句柄也被设置而不会错过它们?我试图在这种情况下不使用ManualResetEvent
,因为当我仍然意识到信号已经设置并且刚开始处理数据时,可能会有更多信号进入。