我有一个WaitHandle,我想知道如何检查WaitHandle是否已经设置。
注意:我可以添加bool变量,每当使用Set()方法时,将变量设置为true,但必须在WaitHandle的某处构建此行为。
感谢您的帮助!
答案 0 :(得分:53)
如果millisecondsTimeout为零,则该方法不会阻止。它测试等待句柄的状态并立即返回。
答案 1 :(得分:6)
const int DoNotWait = 0;
ManualResetEvent waitHandle = new ManualResetEvent(false);
Console.WriteLine("Is set:{0}", waitHandle.WaitOne(DoNotWait));
waitHandle.Set();
Console.WriteLine("Is set:{0}", waitHandle.WaitOne(DoNotWait));
输出:
设置:False
设置为:
答案 2 :(得分:2)
使用WaitHandle
上的Wait...
方法之一获取超时值,例如WaitOne
,并传递超时0。
答案 3 :(得分:1)
您可以使用WaitOne(int millisecondsTimeout, bool exitContext)方法并在时间跨度中传入0。它会马上回来。
bool isSet = yourWaitHandle.WaitOne(0, true);