Как проверить, был ли Уэтандль установлен?

StackOverflow https://stackoverflow.com/questions/3313093

  •  27-09-2020
  •  | 
  •  

Вопрос

У меня есть waithandle и я хотел быЧтобы узнать, как проверить, установлен ли WATHANDLE или нет.

Примечание: Я могу добавить переменную Bool и при когда на Set () используется метод, установите переменную в true, но это поведение должно быть встроено в Waithandle где-то.

Спасибо за помощью!

Это было полезно?

Решение

попробуйте waithandle.waitone (0)

Если millisecondstimeout равно нулю, метод не блокирует.Он проверяет состояние списки ожидания и немедленно возвращается.

Другие советы

const int DoNotWait = 0;
                          
ManualResetEvent waitHandle = new ManualResetEvent(false);                   

Console.WriteLine("Is set:{0}", waitHandle.WaitOne(DoNotWait));
         
waitHandle.Set(); 

Console.WriteLine("Is set:{0}", waitHandle.WaitOne(DoNotWait));   
.

Выход:

устанавливается: false

устанавливается: true

Используйте один из методов Wait... на WaitHandle Значение времени ожидания, например, как WaitOne и пройти время ожидания 0.

Вы можете использовать quitone (int millisecondstimeout, bool exitcontext) Способ и пройти в 0 для TimeSpan.Это вернется сразу.

bool isSet = yourWaitHandle.WaitOne(0, true);
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top