예제 #1
0
파일: StackPool.cs 프로젝트: nikes/Link
 public virtual void Clear()
 {
     lock (LockObject)
     {
         while (FreeItems.Count > 0)
         {
             Cleanup(FreeItems.Pop());
         }
     }
 }
예제 #2
0
파일: StackPool.cs 프로젝트: nikes/Link
 public virtual T Take()
 {
     lock (LockObject)
     {
         if (FreeItems.Count == 0)
         {
             if (MaxFreeCount == 0 || AllocateDefaultCount == 0)
             {
                 return(Create());
             }
             Allocate();
         }
         return(FreeItems.Pop());
     }
 }