Beispiel #1
0
 private static void RegisterMeta(StorageItemMeta meta)
 {
     lock (LockPad)
     {
         if (_expirationTimerSetted == 0)
         {
             SetExpirationTimer();
         }
         if (!AllMetas.Add(meta))
         {
             return;
         }
         _registeredCount++;
         _currentCount++;
     }
 }
Beispiel #2
0
 private static void DeregisterMeta(StorageItemMeta meta)
 {
     lock (LockPad)
     {
         if (!AllMetas.Remove(meta))
         {
             return;
         }
         _currentCount--;
     }
     if (_registeredCount > 0 && (double)_currentCount / _registeredCount < 0.6)
     {
         lock (LockPad)
             AllMetas.TrimExcess();
         _registeredCount = _currentCount;
     }
 }
Beispiel #3
0
 private static void DeregisterMeta(StorageItemMeta meta)
 {
     lock (LockPad)
     {
         if (!AllMetas.Remove(meta))
         {
             return;
         }
         _currentCount--;
     }
     if (_registeredCount > 0 && (double)_currentCount / _registeredCount < 0.6)
     {
         lock (LockPad)
             AllMetas.TrimExcess();
         GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
         GC.Collect();
         _registeredCount = _currentCount;
     }
 }
Beispiel #4
0
 public StorageItem(StorageItemMeta meta, SerializedObject data = null)
 {
     Meta = meta;
     Data = data;
 }