public void ItemRemoved(object key, object item) { if (item == _target) { TimeBasedExpirationPolicy tgt; ActiveTimePolicies.TryRemove(key, out tgt); } }
static void CheckExpiration() { while (true) { ThreadFactory.Sleep(Thread.CurrentThread, ExpirationCheckSleep); List <TimeBasedExpirationPolicy> keysToRemove = new List <TimeBasedExpirationPolicy>(); foreach (TimeBasedExpirationPolicy policy in ActiveTimePolicies.Values) { if (policy.ShouldRemove(DateTime.Now)) { keysToRemove.Add(policy); } } foreach (TimeBasedExpirationPolicy policy in keysToRemove) { policy._cacheProvider.Remove(policy._key); TimeBasedExpirationPolicy tgt; ActiveTimePolicies.TryRemove(policy._key, out tgt); } } }
public void ItemAdded(object key, object item) { ActiveTimePolicies.TryAdd(key, this); }