/// <summary> /// Does the work of adding an item to the list. Must be called from within a lock. /// </summary> /// <param name="item"></param> /// <param name="raiseCountChanged"></param> private void DoAdd(T item, bool raiseCountChanged) { var collectionItem = new ExpiringCollection <T> .CollectionItem <T>(item, _Clock.UtcNow); _List.Add(collectionItem); if (_List.Count == 1) { HookHeartbeat(); } if (raiseCountChanged) { OnCountChanged(_List.Count); } }
/// <summary> /// Does the work of adding a new item to the dictionary. The key must not already exist. /// Must be called from within a lock. /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <param name="raiseCountChanged"></param> private void DoAdd(TKey key, TValue value, bool raiseCountChanged) { var collectionItem = new ExpiringCollection <TValue> .CollectionItem <TValue>(value, _Clock.UtcNow); _Dictionary.Add(key, collectionItem); if (_Dictionary.Count == 1) { HookHeartbeat(); } if (raiseCountChanged) { OnCountChanged(_Dictionary.Count); } }