private void AddToCache(IPoolObject val) { if (!_cache.ContainsKey(val.GetType())) { _cache[val.GetType()] = new List <IPoolObject>(); } _cache[val.GetType()].Add(val); }
/// <summary> /// 是否在对象池内 /// </summary> /// <param name="obj"></param> /// <returns></returns> static public bool IsInPool(IPoolObject obj) { Type type = obj.GetType(); List <IPoolObject> list; if (mPool.TryGetValue(type, out list)) { return(list.Contains(obj)); } return(false); }
static void ReleaseImpl(IPoolObject poolObject) { var poolType = poolObject.GetType(); List <IPoolObject> poolObjectList = null; if (_poolObjectDict.TryGetValue(poolType, out poolObjectList)) { if (poolObjectList.IndexOf(poolObject) != -1) { poolObject.Clear(); poolObject.IsInUse = false; } else { Log.W("PoolManager Can't find PoolObject {0}!", poolObject.GetType().ToString()); } } else { Log.W("PoolManager Can't find PoolName {0}!", poolType.ToString()); } }
public void Release(IPoolObject poolObject) { Release(poolObject.GetType(), poolObject); }