示例#1
0
 public void Dispose()
 {
     if (lockObject != null)
     {
         // Такое бывает под тестами
         DeadlockMonitor.Exit(lockObject);
     }
 }
 /// <summary>
 ///     Освободить блокировку над объектом на чтение
 /// </summary>
 void IRwLockObject.ExitReadLock() => DeadlockMonitor.ExitReadLock(this);
 /// <summary>
 ///     Попытаться захватить блокировку над объектом на запись с таймаутом
 /// </summary>
 bool IRwLockObject.TryEnterWriteLock(int timeout) => DeadlockMonitor.TryEnterWriteLock(this, timeout);
 /// <summary>
 ///     Захватить блокировку над объектом а запись
 /// </summary>
 void IRwLockObject.EnterWriteLock() => DeadlockMonitor.EnterWriteLock(this);
 /// <summary>
 ///     Попытаться захватить блокировку над объектом на чтение с возможностью повышения с таймаутом
 /// </summary>
 bool IRwLockObject.TryEnterUpgradeableReadLock(int timeout) => DeadlockMonitor.TryEnterUpgradeableReadLock(this, timeout);
 /// <summary>
 ///     Захватить блокировку над объектом на чтение с возможностью повышения
 /// </summary>
 void IRwLockObject.EnterUpgradeableReadLock() => DeadlockMonitor.EnterUpgradeableReadLock(this);
 /// <summary>
 ///     Захватить блокировку над объектом на запись
 /// </summary>
 /// <returns>
 ///     Disposable-токен блокировки
 /// </returns>
 public WriteLockDisposableToken WriteLock() => DeadlockMonitor.WriteLock(this);
 /// <summary>
 ///     Захватить блокировку над объектом на чтение с возможностью повышения
 /// </summary>
 /// <returns>
 ///     Disposable-токен блокировки
 /// </returns>
 public UpgradableReadLockDisposableToken UpgradableReadLock() => DeadlockMonitor.UpgradableReadLock(this);
 /// <summary>
 ///     Захватить блокировку над объектом на чтение
 /// </summary>
 /// <returns>
 ///     Disposable-токен блокировки
 /// </returns>
 public ReadLockDisposableToken ReadLock() => DeadlockMonitor.ReadLock(this);
示例#10
0
 public void Dispose()
 {
     DeadlockMonitor.ExitWriteLock(rwls);
 }
 public void Dispose()
 {
     DeadlockMonitor.ExitReadLock(rwls);
 }
 public void Dispose()
 {
     DeadlockMonitor.ExitUpgradeableReadLock(rwls);
 }