System.Threading.ReaderWriterLock
namespace System.Threading
{
public sealed class ReaderWriterLock : CriticalFinalizerObject
{
public bool IsReaderLockHeld { get; }
public bool IsWriterLockHeld { get; }
public int WriterSeqNum { get; }
public ReaderWriterLock();
public void AcquireReaderLock(int millisecondsTimeout);
public void AcquireReaderLock(TimeSpan timeout);
public void AcquireWriterLock(int millisecondsTimeout);
public void AcquireWriterLock(TimeSpan timeout);
public bool AnyWritersSince(int seqNum);
public void DowngradeFromWriterLock(ref LockCookie lockCookie);
public LockCookie ReleaseLock();
public void ReleaseReaderLock();
public void ReleaseWriterLock();
public void RestoreLock(ref LockCookie lockCookie);
public LockCookie UpgradeToWriterLock(int millisecondsTimeout);
public LockCookie UpgradeToWriterLock(TimeSpan timeout);
}
}