Exemplo n.º 1
0
 public UniRx.IObservable <T> RentAsync()
 {
     if (disposedValue)
     {
         throw new ObjectDisposedException("ObjectPool was already disposed.");
     }
     if (q == null)
     {
         q = new Queue <T>();
     }
     if (q.Count > 0)
     {
         T val = q.Dequeue();
         OnBeforeRent(val);
         return(Observable.Return(val));
     }
     UniRx.IObservable <T> source = CreateInstanceAsync();
     return(source.Do(delegate(T x)
     {
         OnBeforeRent(x);
     }));
 }