Esempio n. 1
0
 public ObjectPoolHandle <T> Borrow()
 {
     lock (_syncRoot) {
         ObjectPoolHandle <T> retval;
         if (_returnedObjects.Count > 0)
         {
             retval = _returnedObjects.Dequeue();
         }
         else
         {
             var instance = _factory.CreateInstance();
             retval = new ObjectPoolHandle <T>(this, instance);
         }
         retval.Invalidate = true;
         _borrowedObjects.Add(retval.Guid.ToString(), retval);
         return(retval);
     }
 }