/// <summary> /// Initializes a new instance of ObjectPool class. /// </summary> /// <param name="initializeCount"></param> /// <param name="maxPoolSize"></param> /// <param name="provider"></param> public ObjectPool(int initializeCount, IPoolObjectProvider <T> provider) { if (initializeCount < 0) { throw new ArgumentException("initialize count is less than zero.", "initializeCount"); } if (provider == null) { throw new ArgumentNullException("provider"); } this.m_provider = provider; this.m_objectQueue = new LockFreeQueue <T>(); if (initializeCount > 0) { for (int i = 0; i < initializeCount; i++) { this.ReturnObject(this.CreateObject()); } } }
/// <summary> /// Initializes a new instance of ObjectPool class. /// </summary> /// <param name="provider"></param> public ObjectPool(IPoolObjectProvider <T> provider) : this(0, provider) { }