Como verificar se o WaitHandle foi definido?
-
27-09-2020 - |
Pergunta
Eu tenho um WaitHandle e eu gostaria de saber como verificar se o WaitHandle já foi definido ou não.
Nota: Eu posso adicionar uma variável bool e sempre que o método Set() é usado definir a variável de verdade, mas este comportamento deve ser construído em WaitHandle em algum lugar.
Obrigado pela ajuda!
Solução
tente waithandle.waitone (0)
.Se o Millisecondstimeout é zero, o método não bloqueará.Testa o estado da alça de espera e retorna imediatamente.
Outras dicas
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));
Saída:
Está definido:Falso
Está definido:True
use um dos métodos Wait...
em WaitHandle
que leva umValor de tempo limite, como WaitOne
e passe um tempo limite de 0.
Você pode usar o WaitOne(int millisecondsTimeout, bool exitContext) método e passar de 0 para o intervalo de tempo.Ele irá retornar imediatamente.
bool isSet = yourWaitHandle.WaitOne(0, true);