Name
ReaderWriterLock
Synopsis
This class defines a lock that
allows multiple readers, but
only one writer. A thread can acquire a lock by calling
AcquireReaderLock( ) or
AcquireWriterLock( ). ReleaseReaderLock( ) and ReleaseWriterLock( ) release the
specific locks. Calling ReleaseReaderLock( ) on a
writer lock releases both the writer lock and the reader lock.
However, calling ReleaseWriterLock( ) on a reader
lock throws a System.ApplicationException.
ReleaseLock( ) causes any lock to be released, but
it returns a LockCookie, which represents the type
of lock that RestoreLock can use to obtain the
same lock. UpgradeToWriterLock( ) upgrades a reader
lock to a writer lock, and returns a LockCookie
representing the original reader lock. Pass that cookie to
DowngradeDromWriterLock( ) to restore the original
reader lock.
public sealed class ReaderWriterLock { // Public Constructors public ReaderWriterLock( ); // Public Instance Properties public bool IsReaderLockHeld{get; } public bool IsWriterLockHeld{get; } public int WriterSeqNum{get; } // Public Instance Methods public void AcquireReaderLock(intmillisecondsTimeout); public void AcquireReaderLock(TimeSpantimeout); public void AcquireWriterLock(intmillisecondsTimeout); public void AcquireWriterLock(TimeSpantimeout); public bool AnyWritersSince(intseqNum); public void DowngradeFromWriterLock(ref LockCookielockCookie); public LockCookie ReleaseLock( ); public void ReleaseReaderLock( ); public void ReleaseWriterLock( ); public void ...