How to find what state ManualResetEvent is in?

Viewed 21475

I am using an instance of ManualResetEvent to control thread access to a resource but I'm running into problems with it. Does anyone know how I can find out during debugging what the state of the object is?

That is to say I would like to know if the ManualResetEvent is currently blocking any threads and maybe even how many and which threads it is blocking.

3 Answers

Perform a WaitOne on the event with a timeout value of zero.

It will return true if the event is set, or false if the timeout occurs. In other words, true -> event is set, false -> event is not set.

You can make function calls in the Debugger Watch window. Add a call to mreVariable.WaitOne(0) in the Watch window and see what it evaluates to. Note: You should not use this for AutoResetEvents since that could change the actual state.

Related