예제 #1
0
 protected static void ReturnToPool(T toPool, PoolableObjectCheck extraCheck = null)
 {
     if (ObjectPool.Count < MaxPoolSize && (extraCheck == null || extraCheck.Invoke(toPool)))
     {
         ObjectPool.Enqueue(toPool);
     }
     else if (ShouldDispose)
     {
         (toPool as IDisposable)?.Dispose();
     }
 }
예제 #2
0
 protected ReusableObjectsPool(PoolableObjectFactory factory = null, PoolableObjectCheck check = null)
 {
     this.FromPool            = GetFromPool(factory);
     this.OnReturnToPoolCheck = check;
 }