Come controllare se il waithandle è stato impostato?
-
27-09-2020 - |
Domanda
Ho un waithandle e vorreiPer sapere come controllare se il waithandle è già stato impostato o meno.
Nota: Posso aggiungere una variabile BOOL e quando viene utilizzato il metodo Set () Imposta la variabile su true, ma questo comportamento deve essere costruito in waithandle da qualche parte.
Grazie per l'aiuto!
Soluzione
prova
.Se millisecondstimeout è zero, il metodo non blocca.Testa lo stato della maniglia di attesa e ritorna immediatamente.
Altri suggerimenti
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));
.
Uscita:
.è impostato: falso
è impostato: vero
Utilizzare uno dei metodi Wait...
su WaitHandle
che prende unValore di timeout, come WaitOne
e passare un timeout di 0.
È possibile utilizzare waitone (int millisecondstimeout, bool exitscontext) Metodo e passare in 0 per il TimeSpan.Tornerà subito.
bool isSet = yourWaitHandle.WaitOne(0, true);
.