非阻塞方式测试WaitHandle状态

WaitHandle用于实现对共享资源的独占访问,AutoResetEvent和ManualResetEvent都继承自它。WaitHandle.WaitOne方法将阻塞当前线程,直到WaitHandle收到信号。但有时候,我们需要非阻塞的方式测试WaitHandle状态,翻阅MSDN发现WaitOne有多个重载版本,其中

public virtual bool WaitOne(int millisecondsTimeout)可以指定等待的时间间隔。如果当前实例收到信号,则为true;否则为false。特别地,如果 millisecondsTimeout为零,则该方法不会进入阻塞状态。该方法会测试等待句柄的状态并立即返回。

posted on 2009-03-04 13:07  Todd Wei  阅读(967)  评论(0编辑  收藏  举报