WaitHandle用于实现对共享资源的独占访问,AutoResetEvent和ManualResetEvent都继承自它。WaitHandle.WaitOne方法将阻塞当前线程,直到WaitHandle收到信号。但有时候,我们需要非阻塞的方式测试WaitHandle状态,翻阅MSDN发现WaitOne有多个重载版本,其中
public virtual bool WaitOne(int millisecondsTimeout)
可以指定等待的时间间隔。如果当前实例收到信号,则为true;否则为false。特别地,如果 millisecondsTimeout为零,则该方法不会进入阻塞状态。该方法会测试等待句柄的状态并立即返回。
转自:http://www.cnblogs.com/weidagang2046/archive/2009/03/04/1402924.html