public void Read(ReaderWriterLockHelperAction action, int millisecondsTimeout)
 {
     EnterReadLock(millisecondsTimeout);
     try {
         action();
     } finally {
         ExitReadLock();
     }
 }
 public bool TryWrite(ReaderWriterLockHelperAction action, int millisecondsTimeout)
 {
     try {
         Write(action, millisecondsTimeout);
         return(true);
     } catch (ApplicationException) {
     } catch (TimeoutException) {
     }
     return(false);
 }
        public void Write(ReaderWriterLockHelperAction action, int millisecondsTimeout)
        {
            ReaderWriterLockCookie cookie;

            EnterWriteLock(out cookie, millisecondsTimeout);
            try {
                action();
            } finally {
                ExitWriteLock(ref cookie, millisecondsTimeout);
            }
        }
 public void Write(ReaderWriterLockHelperAction action)
 {
     Write(action, MillisecondsTimeout);
 }
 public void Write(ReaderWriterLockHelperAction action, TimeSpan timeout)
 {
     Write(action, (int)timeout.TotalMilliseconds);
 }
 public bool TryRead(ReaderWriterLockHelperAction action)
 {
     return(TryRead(action, MillisecondsTimeout));
 }
 public bool TryRead(ReaderWriterLockHelperAction action, TimeSpan timeout)
 {
     return(TryRead(action, (int)timeout.TotalMilliseconds));
 }