private static void LockOnReaderWriterLock()
{
Console.WriteLine("About to lock on the ReaderWriterLock. Debug after seeing \"Signaled to acquire the reader lock.\"");
ReaderWriterLock rwLock = new ReaderWriterLock();
ManualResetEvent rEvent = new ManualResetEvent(false);
ManualResetEvent pEvent = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem((object state) =>
{
rwLock.AcquireWriterLock(-1);
Console.WriteLine("Writer lock acquired!");
rEvent.Set();
pEvent.WaitOne();
});
rEvent.WaitOne();
Console.WriteLine("Signaled to acquire the reader lock.");
rwLock.AcquireReaderLock(-1);
Console.WriteLine("Reader lock acquired");
pEvent.Set();
Console.WriteLine("About to end the program. Press any key to exit.");
Console.ReadKey();
}