Writer 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.AcquireWriterLock(250);
        if (rwLock.IsWriterLockHeld)
        {
            Console.WriteLine("Writer lock held");
            rwLock.ReleaseWriterLock();
        }

        rwLock.ReleaseWriterLock();

    }
}
Writer lock held

Unhandled Exception: System.ApplicationException: Attempt to release mutex not owned by caller. (Exc
eption from HRESULT: 0x00000120)
   at System.Threading.ReaderWriterLock.ReleaseWriterLockInternal()
   at MainClass.Main()








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