Esempio n. 1
0
 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;
         }
     }
 }
Esempio n. 2
0
 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;
         }
     }
 }