public GuardedReaderWriterLock(LockRecursionPolicy recursionPolicy)
 {
     _lock         = new ReaderWriterLockSlim(recursionPolicy);
     _readGuard    = new AutoGuard(_lock, false);
     _writeGuard   = new AutoGuard(_lock, true);
     _upgradeGuard = new UpgradeGuard(_lock);
 }
 public GuardedReaderWriterLock()
 {
     _lock         = new ReaderWriterLockSlim();
     _readGuard    = new AutoGuard(_lock, false);
     _writeGuard   = new AutoGuard(_lock, true);
     _upgradeGuard = new UpgradeGuard(_lock);
 }