Пример #1
0
 public void Dispose()
 {
     MyIObjectPool.Return(impl);
     // Prevent continuing use, as the implementation object instance
     // could now be given out.
     impl = null;
 }
Пример #2
0
 internal MyObjectImplGet()
 {
     lock (syncRoot) {
         if (pool.Count > 0)
         {
             return(pool.Dequeue());
         }
         if (totalOjects >= maxObjects)
         {
             throw new PoolException("No objects available");
         }
         var o = new MyObjectImpl();
         totalObjects++;
         return(o);
     }
 }
Пример #3
0
 public MyObject()
 {
     impl = MyObjectPool.Get();
 }
Пример #4
0
 internal void Return(MyObjectImpl obj)
 {
     lock (syncRoot) {
         pool.Enqueue(obj);
     }
 }