如何找到ManualResetEvent的状态?

Geo*_*uer 68 .net multithreading locking

我正在使用一个实例ManualResetEvent来控制对资源的线程访问,但我遇到了问题.有谁知道在调试对象的状态时我怎么能找到?

也就是说我想知道ManualResetEvent当前是否阻塞任何线程,甚至可能阻塞了多少线程以及它阻塞的线程.

And*_*ngs 85

WaitOne对超时值为零的事件执行a .

如果设置了事件,它将返回true,如果发生超时,则返回false.换句话说,true - > event is set,false - > event not set.

  • 那是个好主意,尽管调试器允许我检查其内部,但是我无法在其中找到状态? (2认同)

fab*_*fab 5

这是工作代码:

private ManualResetEvent pause = new ManualResetEvent(false);
pause.WaitOne(); // caller thread pauses
pause.Set();    // another thread releases paused thread

// Check pause state
public bool IsPaused { get { return !pause.WaitOne(0); } }
Run Code Online (Sandbox Code Playgroud)