Reader Lock : ReaderWriterLock « Thread « C# / CSharp Tutorial





using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime;
using System.Runtime.CompilerServices;
using System.Security;
using System.Text;
using System.Threading;

public class MainClass
{
    
    public static void Main()
    {
       ReaderWriterLock rwLock = new ReaderWriterLock();

        rwLock.AcquireReaderLock(250);
        if (!rwLock.IsReaderLockHeld)
           return;

        Console.WriteLine("Reader lock held");
        
        LockCookie cookie = rwLock.UpgradeToWriterLock(250);
        if (rwLock.IsWriterLockHeld)
        {
            Console.WriteLine("Upgraded to writer lock");
            rwLock.DowngradeFromWriterLock(ref cookie);
        }

        rwLock.ReleaseReaderLock();

    }
}
Reader lock held
Upgraded to writer lock










20.21.ReaderWriterLock
20.21.1.Reader Lock
20.21.2.Writer Lock
20.21.3.Using a reader-writer lock to protect a complex business type