75

のインスタンスを使用ManualResetEventしてリソースへのスレッド アクセスを制御していますが、問題が発生しています。デバッグ中にオブジェクトの状態を知る方法を知っている人はいますか?

つまり、ManualResetEventが現在ブロックしているスレッドがあるかどうか、ブロックしているスレッドの数とスレッドを知りたいということです。

4

3 に答える 3

97

WaitOneタイムアウト値 0 でイベントを実行します。

イベントが設定されている場合は true を返し、タイムアウトが発生した場合は false を返します。つまり、true -> イベントが設定され、false -> イベントが設定されません。

于 2008-12-23T15:52:00.303 に答える
6

作業コードは次のとおりです。

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); } }
于 2011-08-07T19:35:13.747 に答える
1

Debugger Watch ウィンドウで関数呼び出しを行うことができます。mreVariable.WaitOne(0)ウォッチ ウィンドウに呼び出しを追加し、評価結果を確認します。注: 実際の状態が変わる可能性があるため、これを AutoResetEvents に使用しないでください。

于 2020-09-05T22:58:52.917 に答える