2012-07-16 9 views
8

Kann überprüft werden, wie das Objekt AutoResetEvent behandelt wurde? Wird es durch Timeout oder durch den Aufruf von Set() von einer anderen Methode ausgelöst?AutoResetEvent-Status überprüfen

Hier ist mein Code.

private AutoResetEvent autoResetEvent = new AutoResetEvent(false); 
private int timeout = 30000; 

public void SyncMethod() 
{ 
    // some code before 
    autoResetEvent.WaitOne(timeout); 
    // if autoResetEvent called by timeout then { do some stuff } 
    // some code after 
} 
public void AsyncMethod() 
{ 
    // some code before 
    // ok I am done 
    autoResetEvent.Set(); 
} 

Antwort

12

Waithandle :: WaitOne-Methode (Int32)

Rückgabewert Typ: System :: Boolean

true, wenn die aktuelle Instanz ein Signal empfängt; sonst falsch.

So wird false nach Timeout zurückgegeben.

+0

So einfach. :) Vielen Dank! –