コード例 #1
0
 /// <summary>
 ///     Calls Close() on object.
 /// </summary>
 /// <param name="cacheObject"></param>
 public static void ReturnObject(T cacheObject)
 {
     cacheObject.Close();
     lock (ClosedQueue)
     {
         ClosedQueue.Enqueue(cacheObject);
     }
 }
コード例 #2
0
        /// <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);
        }