Пример #1
0
        public static void Release(IRecyclableObject recyclableData)
        {
            RecyclableObjectPool pool;

            if (poolMaps.TryGetValue(recyclableData.ClassKey, out pool))
            {
                pool.unusedobjs.Push(recyclableData);
                recyclableData.OnRelease();
            }
        }
Пример #2
0
        public void Push(IRecyclableObject obj)
        {
            string type = obj.GetRecycleType();
            Stack <IRecyclableObject> stackIdleObject = m_poolIdleObject[type];

            if (stackIdleObject == null)
            {
                stackIdleObject = new Stack <IRecyclableObject>();
                m_poolIdleObject.Add(type, stackIdleObject);
            }
            stackIdleObject.Push(obj);
        }
Пример #3
0
        public void Push(IRecyclableObject obj)
        {
            if (obj == null)
            {
                return;
            }

            string type = obj.GetRecycleType();
            Stack <IRecyclableObject> idleObjStack;

            if (m_idleObjPool.ContainsKey(type))
            {
                idleObjStack = m_idleObjPool[type];
            }
            else
            {
                idleObjStack = new Stack <IRecyclableObject>();
                m_idleObjPool.Add(type, idleObjStack);
            }

            idleObjStack.Push(obj);
        }