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 ...
Get C# in a Nutshell, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.