<PackageReference Include="NETStandard.Library" Version="2.0.2" />

System.Threading.ReaderWriterLockSlim

namespace System.Threading { public class ReaderWriterLockSlim : IDisposable { public int CurrentReadCount { get; } public bool IsReadLockHeld { get; } public bool IsUpgradeableReadLockHeld { get; } public bool IsWriteLockHeld { get; } public LockRecursionPolicy RecursionPolicy { get; } public int RecursiveReadCount { get; } public int RecursiveUpgradeCount { get; } public int RecursiveWriteCount { get; } public int WaitingReadCount { get; } public int WaitingUpgradeCount { get; } public int WaitingWriteCount { get; } public ReaderWriterLockSlim(); public ReaderWriterLockSlim(LockRecursionPolicy recursionPolicy); public void Dispose(); public void EnterReadLock(); public void EnterUpgradeableReadLock(); public void EnterWriteLock(); public void ExitReadLock(); public void ExitUpgradeableReadLock(); public void ExitWriteLock(); public bool TryEnterReadLock(int millisecondsTimeout); public bool TryEnterReadLock(TimeSpan timeout); public bool TryEnterUpgradeableReadLock(int millisecondsTimeout); public bool TryEnterUpgradeableReadLock(TimeSpan timeout); public bool TryEnterWriteLock(int millisecondsTimeout); public bool TryEnterWriteLock(TimeSpan timeout); } }