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!

È stato utile?

Soluzione

prova waithandle.waitone (0)

.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top