In the last post I discussed an asynchronous version of the ManualResetEvent and as promised this time we will be looking at an
asynchronous version of the AutoResetEvent. I’m using Stephen Toubs post
as reference and we will be building a version that is functional in style that maps straight into asynchronous work flows without and conversion
or adaptors.
What is an AutoResetEvent?
An AutoResetEvent can be described as a turnstile mechanism, it lets a single waiting person through before re-latching
waiting for the next signal. This is opposed to a ManualResetEvent which functions like an ordinary gate. Calling Set opens
the gate, allowing any number of threads that are waiting to be let through. Calling Reset closes the gate.