public void Dispose()
 {
     if (_upgradedLock != null)
     {
         _upgradedLock.Dispose();
     }
     _readerWriterLock.ExitUpgradeableReadLock();
 }