AsyncWaitHandle.WaitOne的详细信息

use*_*675 12 c# multithreading

1)调用AsyncWaitHandle.WaitOne可能会阻止客户端或肯定会阻止客户端?

2)WaitAll,WaitOne,WaitAny之间有什么区别?

Dan*_*nov 21

  1. WaitHandle.WaitOne()是一个实例方法,它将阻塞,直到等待句柄发出信号(操作完成时).如果先前已经发出信号(即操作已经完成),则呼叫WaitOne()可能不会阻止.
  2. WaitHandle.WaitAll()并且WaitHandle.WaitAny()是静态方法,允许您指定要同时监视的多个等待句柄:

    • WaitHandle.WaitAll()将等到所有指定的句柄在返回之前发出信号.
    • WaitHandle.WaitAny()只要发出任何指定的句柄信号,就会返回.

    这些方法允许您同时监视许多未完成的异步操作.

背景: AsyncWaitHandleIAsyncResult接口上的属性的名称.此属性的实际类型是WaitHandle,它是类型,例如一个抽象基类Semaphore,MutexManual/AutoResetEvent.

另请参阅: 使用AsyncWaitHandle(MSDN)阻止应用程序执行