2010-01-19 11 views
12

En C# ¿cuál es la diferencia entre el evento de reinicio manual, el evento automático? También cuando debería uno usar lo mismo. ¿Cuál es la diferencia entre configurar autoresetevent en verdadero o falso?evento de restablecimiento manual, evento de restablecimiento automático

+0

posible duplicado de [¿Cuál es la diferencia entre ManualResetEvent y AutoResetEvent en .net?] (Http://stackoverflow.com/questions/153877/what-is-the-difference-between-manualresetevent-and-autoresetevent-in -net) – Sung

+1

Aquí hay una explicación increíble con imágenes :) http://multithreads.blogspot.de/2007/09/eventwaithandler-autoresetevent-and.html – VladL

Respuesta

16

Para el ManualResetEvent, una vez que usted ha llamado Set(), usted tiene que llamar deliberadamente Reset() para poner de nuevo en un estado tal que unsignaled llama a WaitOne() bloqueará.

Esto no es necesario para AutoResetEvent.

La documentación es bastante buena en MSDN para ManualResetEvent y AutoResetEvent.

+0

También tenga en cuenta que AutoResetEvent.Set() libera solo un hilo en espera, mientras ManualResetEvent.Set() libera todos los subprocesos en espera y no bloquea más (hasta que llame a Restablecer). –

Cuestiones relacionadas