Releases a writer lock
            
            
            
Syntax
| Visual Basic (Declaration) |   | 
|---|
Sub ReleaseWrite()   | 
 
            
            
             
            
						
            
            
            
            
Example
Library/Library.Test/LockingTests/TestReservedWriteLocking.cs
             | C# |  Copy Code | 
|---|
using (ILockStrategy l = LockFactory.Create())
{
    Assert.AreEqual(0, l.WriteVersion);
    Assert.IsTrue(l.TryRead(0));
    l.ReleaseRead();
    Assert.AreEqual(0, l.WriteVersion);
    Assert.IsTrue(l.TryWrite(0));
    Assert.AreEqual(0, l.WriteVersion);
    l.ReleaseWrite();
    Assert.AreEqual(0, l.WriteVersion);
    using (l.Write())
    {
        Assert.AreEqual(0, l.WriteVersion);
        Assert.IsTrue(l.TryWrite(0));
        // Once a nested write lock is acquired the real lock is obtained.
        Assert.AreEqual(1, l.WriteVersion);
        l.ReleaseWrite();
        Assert.AreEqual(1, l.WriteVersion);
    }
    Assert.IsTrue(l.TryWrite(0));
    l.ReleaseWrite();
    Assert.AreEqual(1, l.WriteVersion);
} | 
 
| VB.NET |  Copy Code | 
|---|
Using l As ILockStrategy = LockFactory.Create()
    Assert.AreEqual(0, l.WriteVersion)
    Assert.IsTrue(l.TryRead(0))
    l.ReleaseRead()
    Assert.AreEqual(0, l.WriteVersion)
    Assert.IsTrue(l.TryWrite(0))
    Assert.AreEqual(0, l.WriteVersion)
    l.ReleaseWrite()
    Assert.AreEqual(0, l.WriteVersion)
    Using l.Write()
        Assert.AreEqual(0, l.WriteVersion)
        Assert.IsTrue(l.TryWrite(0))
        ' Once a nested write lock is acquired the real lock is obtained.
        Assert.AreEqual(1, l.WriteVersion)
        l.ReleaseWrite()
        Assert.AreEqual(1, l.WriteVersion)
    End Using
    Assert.IsTrue(l.TryWrite(0))
    l.ReleaseWrite()
    Assert.AreEqual(1, l.WriteVersion)
End Using | 
 
 
            
            
Requirements
Target Platforms: Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7
 
            
            
See Also