It's all about concurrency and multi-threading synchronization management and this is a great overview: http://msdn.microsoft.com/en-us/library/ms228964.aspx
What are WaitHandles?
"Event wait handles allow threads to synchronize activities by signaling each other and by waiting on each other's signals. These synchronization events are based on Win32 wait handles and can be divided into two types: those that reset automatically when signaled and those that are reset manually."
ManualResetEvent and AutoResetEvent:http://www.yoda.arachsys.com/csharp/threads/waithandles.shtml
3. Interlocked Operations