2012-07-16 14 views
8

¿Es posible verificar cómo se trató en realidad el objeto AutoResetEvent? ¿Se dispara por tiempo de espera o llamando a Set() desde otro método?Comprobar el estado AutoResetEvent

Aquí está mi código.

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(); 
} 

Respuesta

12

WaitHandle :: WaitOne Método (Int32)

Valor devuelto Tipo: System :: booleana

cierto si la instancia actual recibe una señal; de lo contrario, falso.

Por lo tanto, se devuelve falso después de tiempo de espera.

+0

Tan fácil. :) ¡Gracias! –

Cuestiones relacionadas