Подтвердить что ты не робот

Как найти, в каком состоянии находится ManualResetEvent?

Я использую экземпляр ManualResetEvent для управления потоковым доступом к ресурсу, но у меня возникают проблемы с ним. Кто-нибудь знает, как я могу узнать во время отладки, что такое состояние объекта?

То есть я хотел бы знать, блокирует ли ManualResetEvent любые потоки и, возможно, даже сколько и какие потоки блокируются.

4b9b3361

Ответ 1

Выполните a WaitOne в событии с нулевым значением тайм-аута.

Он вернет true, если событие установлено, или false, если произойдет таймаут. Другими словами, установлено значение true → , false → событие не установлено.

Ответ 2

Вот рабочий код:

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); } }