如何检查WaitHandle是否已设置?

Mar*_*cka 39 c# waithandle

我有一个WaitHandle,我想知道如何检查WaitHandle是否已经设置.

注意:我可以添加bool变量,每当使用Set()方法时,将变量设置为true,但必须在WaitHandle中的某处构建此行为.

感谢帮助!

SwD*_*n81 55

试试WaitHandle.WaitOne(0)

如果millisecondsTimeout为零,则该方法不会阻止.它测试等待句柄的状态并立即返回.

  • 唯一的问题是对于一些WaitHandles(自动重置事件,信号量),就绪状态实际上将通过等待它来重置. (4认同)

Tim*_*oyd 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));   
Run Code Online (Sandbox Code Playgroud)

输出:

设置为:False

设置:是的