/// <summary> /// Calls Close() on object. /// </summary> /// <param name="cacheObject"></param> public static void ReturnObject(T cacheObject) { cacheObject.Close(); lock (ClosedQueue) { ClosedQueue.Enqueue(cacheObject); } }
/// <summary> /// Calls Initialize() on object. /// </summary> /// <returns></returns> public static T GetObject() { T cacheObject = null; lock (ClosedQueue) { if (ClosedQueue.Count > 0) { cacheObject = ClosedQueue.Dequeue(); } } if (cacheObject is null) { cacheObject = new T(); } cacheObject.Initialize(); return(cacheObject); }