public List <KeyValuePair <TKey, TValue> > ToList() { List <KeyValuePair <TKey, TValue> > keyValuePairs; using (ReaderLock readerLock = new ReaderLock(this.readerWriterLock)) { List <KeyValuePair <TKey, TValue> > keyValuePairs1 = new List <KeyValuePair <TKey, TValue> >(); foreach (KeyValuePair <TKey, CacheEntry <TValue> > keyValuePair in this.cache) { keyValuePairs1.Add(new KeyValuePair <TKey, TValue>(keyValuePair.Key, keyValuePair.Value.Value)); } keyValuePairs = keyValuePairs1; } return(keyValuePairs); }
public bool TryUnlockKey(TKey key) { CacheEntry <TValue> cacheEntry = null; bool flag; using (ReaderLock readerLock = new ReaderLock(this.readerWriterLock)) { bool flag1 = this.cache.TryGetValue(key, out cacheEntry); flag = flag1; if (flag1) { cacheEntry.Unlock(); } } return(flag); }
public bool TryLockKey(TKey key, out TValue value) { CacheEntry <TValue> cacheEntry = null; bool flag; value = default(TValue); using (ReaderLock readerLock = new ReaderLock(this.readerWriterLock)) { bool flag1 = this.cache.TryGetValue(key, out cacheEntry); flag = flag1; if (flag1) { cacheEntry.Lock(out value); } } return(flag); }
internal int TestHookGetLockCount(TKey key) { CacheEntry <TValue> cacheEntry = null; int num; using (ReaderLock readerLock = new ReaderLock(this.readerWriterLock)) { if (!this.cache.TryGetValue(key, out cacheEntry)) { num = -1; } else { num = cacheEntry.TestHookGetLockCount(); } } return(num); }