public ObjectPool(Type type, int minimumPoolSize, int maximumPoolSize, ObjectPoolFactoryMethod factoryMethod) { _type = type; _minimumPoolSize = minimumPoolSize; _maximumPoolSize = maximumPoolSize; _factoryMethod = factoryMethod; _pooledObjects = new Queue <IPooledObject>(); AdjustMinimumPoolSize(); AdjustMaximumPoolSize(); }
/// <summary> /// 注册对象池 /// </summary> /// <param name="type"></param> /// <param name="minimumPoolSize"></param> /// <param name="maximumPoolSize"></param> /// <param name="factoryMethod"></param> /// <returns></returns> public IObjectPool RegisterObjectPool(Type type, int minimumPoolSize, int maximumPoolSize, ObjectPoolFactoryMethod factoryMethod) { IObjectPool objectPool; if (_objectPools.TryGetValue(type, out objectPool)) { App.logManager.Warn("ObjectPoolManager.RegisterObjectPool Warn:" + type.Name + " has already register!"); return(objectPool); } objectPool = _objectPools[type] = new ObjectPool(type, minimumPoolSize, maximumPoolSize, factoryMethod); return(objectPool); }