Exemple #1
0
        /// <summary>
        /// 初始化
        /// </summary>
        public void Ini()
        {
            //初始化空闲的ISearch 队列
            _FreeItems = new Queue<Search.ISearch>();

            if (!string.IsNullOrEmpty(IP) && !string.IsNullOrEmpty(Port))
            {
                //初始化最小Min 个ISearch 对象
                for (int i = 1; i <= Min; i++)
                {
                    SocketSearch ss = new SocketSearch(i, IP, Port, _type); //初始化
                    ss.logIn(); //登录Main
                    _FreeItems.Enqueue(ss); //添加到队列中
                }
            }
            _UsedItems = new List<Search.ISearch>(); //初始化一个空的已经使用的ISearch对象列表  准备放已使用的ISearchObject
        }
Exemple #2
0
 /// <summary>
 /// ISearchPool 增长
 /// </summary>
 /// <returns></returns>
 public bool Grow()
 {
     //判断当前池的数量是否已经是最大值
     if (Count < Max)
     {
         //向空闲的ISearch队列中添加  Growth 个ISearch对象
         for (int i = 1; i <= Growth; i++)
         {
             ISearch s = new SocketSearch(Count +1, IP, Port, _type);
             s.logIn();
             lock (_FreeItems)
             {
                 _FreeItems.Enqueue(s);
             }
             if (Count >= Max)
             {
                 break;
             }
         }
         return true;
     }
     else //池已经达到最大
     {
         return false;
     }
 }