开发者

How to check if the WaitHandle was set?

开发者 https://www.devze.com 2023-01-08 06:04 出处:网络
I have a WaitHandle and I would like to know how to check if the WaitHandle has already been set or not.

I have a WaitHandle and I would like to know how to check if the WaitHandle has already been set or not.

Note: I can add a bool va开发者_JS百科riable and whenever Set() method is used set the variable to true, but this behaviour must be built in WaitHandle somewhere.

Thanks for help!


Try WaitHandle.WaitOne(0)

If millisecondsTimeout is zero, the method does not block. It tests the state of the wait handle and returns immediately.


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));   

Output:

Is set:False

Is set:True


Use one of the Wait... methods on WaitHandle that takes a timeout value, such as WaitOne, and pass a timeout of 0.


You can use the WaitOne(int millisecondsTimeout, bool exitContext) method and pass in 0 for the timespan. It will return right away.

bool isSet = yourWaitHandle.WaitOne(0, true);
0

精彩评论

暂无评论...
验证码 换一张
取 消