我正在使用的实例ManualResetEvent
来控制对资源的线程访问,但是我遇到了问题。有谁知道我在调试过程中如何找出对象的状态?
也就是说,我想知道该ManualResetEvent
线程当前是否正在阻止任何线程,甚至可能阻止多少线程以及正在阻止哪个线程。
Answers:
WaitOne
对事件执行超时值为零的事件。
如果设置了事件,它将返回true;如果发生超时,则将返回false。换句话说,设置为true->事件,未设置false->事件。
这是工作代码:
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); } }
IsBlocking
。我看不到如何增强给定的答案,我想我们可以写下WaitOne(0)
给定答案“WaitOne
对超时值为零的事件执行a ”。
ManualResetEventSlim
它,除其他外,它提供了IsSet
一种据说比.NET更快的方法WaitOne(0)
。