Пример #1
0
 protected virtual void 触发采集状态变更事件(采集状态 新状态)
 {
     if (采集状态变更事件 != null)
     {
         采集状态变更事件(this, 新状态);
     }
     if (新状态 == 采集状态.正在请求停止)
     {
         foreach (蜘蛛 f in 蜘蛛群)
         {
             if (f.状态 == 采集状态.采集中)
             {
                 f.状态 = 新状态;
             }
         }
     }
 }
Пример #2
0
 public virtual void 开始采集(IEnumerable <蜘蛛> 蜘蛛)
 {
     触发开始采集事件();
     _启动时间 = DateTime.Now;
     状态    = 采集状态.采集中;
     委派目标(蜘蛛);
     foreach (蜘蛛 f in 蜘蛛群)
     {
         f.采集完毕事件 -= new 蜘蛛.采集完毕代理(采集完毕处理);
         f.采集完毕事件 += new 蜘蛛.采集完毕代理(采集完毕处理);
         f.巢穴      = this;
         var t = new Thread(f.开始采集);
         t.Name         = f.称;
         t.IsBackground = true;
         线程池.添加或更新(f.称, t);
         触发启动线程事件(f, t);
         t.Start();
     }
 }