我正在使用 的实例ManualResetEvent
来控制对资源的线程访问,但我遇到了问题。有谁知道我在调试过程中如何找出对象的状态?
也就是说,我想知道ManualResetEvent
当前是否阻塞了任何线程,甚至可能阻塞了多少线程和哪些线程。
我正在使用 的实例ManualResetEvent
来控制对资源的线程访问,但我遇到了问题。有谁知道我在调试过程中如何找出对象的状态?
也就是说,我想知道ManualResetEvent
当前是否阻塞了任何线程,甚至可能阻塞了多少线程和哪些线程。
对超时值为零的事件执行 a WaitOne
。
如果设置了事件,它将返回 true,如果发生超时,它将返回 false。换句话说,true -> event 被设置,false -> event 没有被设置。
这是工作代码:
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); } }
您可以在 Debugger Watch 窗口中进行函数调用。在 Watch 窗口中添加一个调用mreVariable.WaitOne(0)
并查看它的计算结果。注意:您不应将其用于 AutoResetEvents,因为这可能会改变实际状态。