public void Set(ICacheItem data) { lock (this) { data.UpgradeValue = UpgradeValue; data.Reset(); data.LevelCached = Name; LinkedListNode<ICacheItem> item = null; mItemTable.TryGetValue(data.Key, out item); if (item != null) { item.Value = data; } else { if (mItemTable.Count >= Maximum) { LinkedListNode<ICacheItem> lastItem = mItemLink.Last; if (lastItem != null) { mItemLink.Remove(lastItem); mItemTable.Remove(lastItem.Value.Key); } } item = mItemLink.AddFirst(data); mItemTable[data.Key] = item; } } }
public void Set(ICacheItem data) { lock (this) { data.UpgradeValue = UpgradeValue; data.Reset(); data.LevelCached = Name; LinkedListNode <ICacheItem> item = null; mItemTable.TryGetValue(data.Key, out item); if (item != null) { item.Value = data; } else { if (mItemTable.Count >= Maximum) { LinkedListNode <ICacheItem> lastItem = mItemLink.Last; if (lastItem != null) { mItemLink.Remove(lastItem); mItemTable.Remove(lastItem.Value.Key); } } item = mItemLink.AddFirst(data); mItemTable[data.Key] = item; } } }