Comment vérifier si le WaitHandle a été fixé?
-
27-09-2020 - |
Question
J'ai un WaitHandle et je voudrais savoir comment faire pour vérifier si le WaitHandle a déjà été définie ou pas.
Note: Je peux ajouter une variable boolean et chaque fois que la méthode Set() est utilisé définir la variable à true, mais ce comportement doit être construit en WaitHandle quelque part.
Merci pour l'aide!
La solution
Si millisecondstimeout est zéro, la méthode ne bloque pas.Il teste l'état de la poignée d'attente et retourne immédiatement.
Autres conseils
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));
sortie:
est défini: FALSE
est défini: vrai
Utilisez l'une des Wait...
méthodes sur WaitHandle
qui prend une valeur de délai d'expiration, comme WaitOne
, et passer un délai d'attente de 0.
Vous pouvez utiliser WAITONE (INT MILLISECONDSTIMOUTER BOOL EXITEXTEXT) PROCÉDÉ ET PASSIER 0 POUR LE TRANDPAN.Cela reviendra tout de suite.
bool isSet = yourWaitHandle.WaitOne(0, true);