An AutoResetEvent is automatically reset to nonsignaled by the system after a single waiting thread has been released. The state of an auto-reset event object remains signaled until a single waiting thread is released, at which time the system automatically sets the state to nonsignaled. If no threads are waiting, the event object's state remains signaled. See WaitHandle for WaitOne, WaitAny and WaitAll.
For reference details see: AutoResetEvent.