What is the difference between ManualResetEvent and AutoResetEvent in .NET?

.net, autoresetevent, c#, manualresetevent, multithreading

Solution

Yes. It's like the difference between a tollbooth and a door. The `ManualResetEvent` is the door, which needs to be closed (reset) manually. The `AutoResetEvent` is a tollbooth, allowing one car to go by and automatically closing before the next one can get through.

Problem

I have read the documentation on this and I think I understand. An `AutoResetEvent` resets when the code passes through `event.WaitOne()`, but a `ManualResetEvent` does not. Is this correct?

Original source