Exemplo n.º 1
0
        /// <summary>
        /// 创建对象池 包含预加载数量以及最大数量的版本
        /// </summary>
        /// <param name="_rawResResponse"></param>
        /// <param name="_preloadNumber">预加载数量</param>
        /// <param name="_maxCount">总大小</param>
        /// <returns></returns>
        public IPoolGroup CreatePool(IResResponse _rawResResponse, int _preloadNumber, int _maxCount)
        {
            if (null == _rawResResponse)
            {
                return(null);
            }
            IPoolGroup group = GetPoolGroup(_rawResResponse.SourceDataName);

            if (null != group)
            {
                return(group);
            }
            group = CreatePool(_rawResResponse);
            group.SetPreloadNumber(_preloadNumber).SetMaxCount(_maxCount);
            return(group);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 创建一个内存池,并且直接启动
        /// </summary>
        /// <param name="_rawResResponse"></param>
        /// <param name="_preloadNumber">预加载数量</param>
        /// <param name="_maxCount">最大数量</param>
        /// <param name="_intervalCheck">间隔检测时间</param>
        /// <param name="_expireTime">过期时间</param>
        public void CreatePool(IResResponse _rawResResponse, int _preloadNumber, int _maxCount, int _intervalCheck,
                               int _expireTime)
        {
            IPoolGroup group = GetPoolGroup(_rawResResponse.SourceDataName);

            if (null != group)
            {
                return;
            }
            group = CreatePool(_rawResResponse, _preloadNumber, _maxCount);
            if (null != group)
            {
                group.SetMaxCount(_maxCount).SetCleraIntervalTime(_intervalCheck).SetExpiredTime(_expireTime);
                group.Run();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 通过源数据创建一个内存池
        /// </summary>
        /// <param name="_rawResResponse"></param>
        /// <returns></returns>
        public IPoolGroup CreatePool(IResResponse _rawResResponse)
        {
            if (null == _rawResResponse)
            {
                return(null);
            }
            IPoolGroup group = GetPoolGroup(_rawResResponse.SourceDataName);

            if (null != group)
            {
                return(group);
            }
            IPoolGroup resultPool = new PoolGroup(_rawResResponse);
            string     rawName    = _rawResResponse.SourceDataName;

            if (false == poolGroups.ContainsKey(rawName))
            {
                resultPool.RawDataName = rawName;
                poolGroups.Add(rawName, resultPool);
            }
            return(resultPool);
        }