1)调用AsyncWaitHandle.WaitOne可能会阻塞客户端,也可能一定会阻塞客户端?
2) WaitAll、WaitOne、WaitAny有什么区别?
发布于 2009-11-30 01:29:34
WaitHandle.WaitOne()是一个实例方法,它将阻塞,直到发出等待句柄信号(当操作完成时)。如果之前已经发出信号(即操作已经完成),则可能不会block.WaitHandle.WaitAll()调用WaitOne(),而WaitHandle.WaitAny()是允许您指定许多等待句柄来监视simultaneously:的静态方法
- `WaitHandle.WaitAll()` will wait until _all_ of the specified handles have been signalled before it returns.
- `WaitHandle.WaitAny()` will return as soon as _any_ of the specified handles have been signalled.这些方法允许您同时监视多个未完成的异步操作。
背景:AsyncWaitHandle是IAsyncResult接口上的属性的名称。此属性的实际类型是WaitHandle,它是Semaphore、Mutex和Manual/AutoResetEvent等类型的抽象基类。
另请参阅:微软( Blocking Application Execution Using an AsyncWaitHandle )
发布于 2009-11-30 01:22:43
这些方法允许您等待windows事件。WaitOne是非静态的,它等待该对象的事件句柄。WaitAll和WaitAny是等待一组事件处理程序的静态类范围方法。WaitAll等待所有事件发出信号,而WaitAny等待组中的单个事件。
https://stackoverflow.com/questions/1816099
复制相似问题