У меня есть WaitHandle, и я хотел бы знать, как проверить, был ли WaitHandle уже установлен или нет.
Примечание: Я могу добавить bool переменную и каждый раз, когда Установлено (), метод используется, устанавливает переменную на истинный, но это поведение должно быть создано в WaitHandle где-нибудь.
Спасибо за справку!
Попробуйте WaitHandle.WaitOne (0)
Если значение millisecondsTimeout равно нулю, метод не блокируется. Он проверяет состояние дескриптора ожидания и немедленно возвращается.
Используйте один из методов Wait ...
на WaitHandle
, который принимает значение тайм-аута, например WaitOne
, и передает тайм-аут, равный 0.
Вы можете использовать метод WaitOne (int millisecondsTimeout, bool exitContext) и передать 0 для промежутка времени. Он вернется сразу.
bool isSet = yourWaitHandle.WaitOne(0, true);
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));
Вывод:
Установлено: Ложь
Установлено: Истина