c# - ¿Cómo comprobar si se configuró WaitHandle?
(4)
Prueba WaitHandle.WaitOne(0)
Si millisecondsTimeout es cero, el método no se bloquea. Prueba el estado del identificador de espera y regresa inmediatamente.
Tengo un WaitHandle y me gustaría saber cómo comprobar si el WaitHandle ya se ha configurado o no.
Nota: Puedo agregar una variable bool y siempre que se use el método Set () establezca la variable en verdadero, pero este comportamiento debe construirse en WaitHandle en alguna parte.
¡Gracias por la ayuda!
Puede usar el método WaitOne (int milisecondsTimeout, bool exitContext) y pasar 0 para el intervalo de tiempo. Regresará de inmediato.
bool isSet = yourWaitHandle.WaitOne(0, true);
Use uno de los métodos Wait...
en WaitHandle
que toma un valor de tiempo de espera, como WaitHandle.WaitOne(0) , y pasa un tiempo de espera de 0.
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));
Salida:
Se establece: Falso
Está configurado: verdadero