public void ReleaseWrite()
{
lock (myLock)
{
if (myWriter != Thread.CurrentThread) throw new InvalidOperationException("myWriter != Thread.CurrentThread");
Debug.Assert(myWriterCount > 0);
if (--myWriterCount == 0)
{
myWriter = null;
Monitor.PulseAll(myLock);
}
}
}
public void Dispose() { myRwLock.ReleaseWrite(); }