示例#1
0
 public static void FreeStatic(ref pointer.size data)
 {
     if (data.data != null)
     {
         Interlocked.Add(ref staticSize, -data.sizeValue);
         Marshal.FreeHGlobal((IntPtr)data.data);
         data.Null();
     }
 }
示例#2
0
 /// <summary>
 /// 释放数据容器
 /// </summary>
 public virtual void Close()
 {
     if (IsUnmanaged)
     {
         unmanaged.Free(ref data);
         IsUnmanaged = false;
     }
     length = 0;
     data.Null();
 }
示例#3
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose()
 {
     if (currentFreeIndex != null)
     {
         Monitor.Enter(poolLock);
         pointer.size indexs = freeIndexs;
         pool             = nullValue <valueType> .Array;
         poolIndex        = 0;
         currentFreeIndex = null;
         endFreeIndex     = null;
         freeIndexs.Null();
         Monitor.Exit(poolLock);
         unmanaged.Free(ref indexs);
     }
 }