コード例 #1
0
 /// <summary>
 /// .ctor. Try to acquire lock with given timeout.
 /// <exception cref="InvalidOperationException"> If wrong SlimLockMode specified</exception>
 /// <exception cref="ApplicationException"> If lock cannot be acquired during timeout</exception>
 /// <exception cref="ArgumentNullException"> alock is null</exception>
 /// <exception cref="LockRecursionException">
 /// <see cref="ReaderWriterLockSlim.TryEnterReadLock(System.TimeSpan)"/>
 /// <see cref="ReaderWriterLockSlim.TryEnterUpgradeableReadLock(System.TimeSpan)"/>
 /// <see cref="ReaderWriterLockSlim.TryEnterWriteLock(System.TimeSpan)"/>
 /// </exception>
 /// </summary>
 /// <param name="alock">Lock object</param>
 /// <param name="mode">Mode to acquire lock</param>
 /// <param name="timeout">Timeout to acquire lock</param>
 public DisposableReaderWriterLockSlim(ReaderWriterLockSlim alock, TimeSpan timeout, SlimLockMode mode = SlimLockMode.Read)
 {
     ParametersValidator.IsNotNull(alock, () => alock);
     _lock    = alock;
     _mode    = mode;
     _timeout = timeout;
     AcquireLock();
     Logger.TraceFormat("lock created timeout={0}, mode ={1}", timeout, mode);
 }
コード例 #2
0
 /// <summary>
 /// .ctor. Try to acquire lock with given timeout.
 /// <exception cref="InvalidOperationException"> If wrong SlimLockMode specified</exception>
 /// <exception cref="ApplicationException"> If lock cannot be acquired during timeout</exception>
 /// <exception cref="ArgumentNullException"> alock is null</exception>
 /// <exception cref="LockRecursionException"> 
 /// <see cref="ReaderWriterLockSlim.TryEnterReadLock(System.TimeSpan)"/>
 /// <see cref="ReaderWriterLockSlim.TryEnterUpgradeableReadLock(System.TimeSpan)"/>
 /// <see cref="ReaderWriterLockSlim.TryEnterWriteLock(System.TimeSpan)"/>
 /// </exception>
 /// </summary>
 /// <param name="alock">Lock object</param>
 /// <param name="mode">Mode to acquire lock</param>
 /// <param name="timeout">Timeout to acquire lock</param>
 public DisposableReaderWriterLockSlim(ReaderWriterLockSlim alock, TimeSpan timeout, SlimLockMode mode = SlimLockMode.Read)
 {
     ParametersValidator.IsNotNull(alock, () => alock);
     _lock = alock;
     _mode = mode;
     _timeout = timeout;
     AcquireLock();
     Logger.TraceFormat("lock created timeout={0}, mode ={1}", timeout, mode);
 }
コード例 #3
0
 /// <summary>
 /// .ctor. Try to acquire lock with default timeout (1h).
 /// <exception cref="InvalidOperationException"> If wrong SlimLockMode specified</exception>
 /// <exception cref="ApplicationException"> If lock cannot be acquired during timeout</exception>
 /// <exception cref="ArgumentNullException"> alock is null</exception>
 /// <exception cref="LockRecursionException">
 /// <see cref="ReaderWriterLockSlim.TryEnterReadLock(System.TimeSpan)"/>
 /// <see cref="ReaderWriterLockSlim.TryEnterUpgradeableReadLock(System.TimeSpan)"/>
 /// <see cref="ReaderWriterLockSlim.TryEnterWriteLock(System.TimeSpan)"/>
 /// </exception>
 /// </summary>
 /// <param name="alock">Lock object</param>
 /// <param name="mode">Mode to acquire lock</param>
 public DisposableReaderWriterLockSlim(ReaderWriterLockSlim alock, SlimLockMode mode = SlimLockMode.Read)
     : this(alock, DefaultTimeout, mode)
 {
 }
コード例 #4
0
 /// <summary>
 /// .ctor. Try to acquire lock with default timeout (1h).
 /// <exception cref="InvalidOperationException"> If wrong SlimLockMode specified</exception>
 /// <exception cref="ApplicationException"> If lock cannot be acquired during timeout</exception>
 /// <exception cref="ArgumentNullException"> alock is null</exception>
 /// <exception cref="LockRecursionException"> 
 /// <see cref="ReaderWriterLockSlim.TryEnterReadLock(System.TimeSpan)"/>
 /// <see cref="ReaderWriterLockSlim.TryEnterUpgradeableReadLock(System.TimeSpan)"/>
 /// <see cref="ReaderWriterLockSlim.TryEnterWriteLock(System.TimeSpan)"/>
 /// </exception>
 /// </summary>
 /// <param name="alock">Lock object</param>
 /// <param name="mode">Mode to acquire lock</param>
 public DisposableReaderWriterLockSlim(ReaderWriterLockSlim alock, SlimLockMode mode = SlimLockMode.Read)
     : this(alock, DefaultTimeout, mode)
 {
 }