¿Cuál es la diferencia entre ManualResetEvent y AutoResetEvent en .NET?
He leído la documentación sobre esto y creo que lo entiendo. An AutoResetEvent
se reinicia cuando el código pasa event.WaitOne()
, pero a ManualResetEvent
no.
¿Es esto correcto?
Aceptado
Sí. Es como la diferencia entre un peaje y una puerta. Es ManualResetEvent
la puerta que debe cerrarse (restablecerse) manualmente. Se AutoResetEvent
trata de una cabina de peaje que permite el paso de un coche y se cierra automáticamente antes de que pueda pasar el siguiente.
Imagínese que se AutoResetEvent
ejecuta WaitOne()
y Reset()
como una sola operación atómica.
También AutoResetEvent
garantiza liberar solo un hilo en espera.