protected virtual void 触发采集状态变更事件(采集状态 新状态) { if (采集状态变更事件 != null) { 采集状态变更事件(this, 新状态); } if (新状态 == 采集状态.正在请求停止) { foreach (蜘蛛 f in 蜘蛛群) { if (f.状态 == 采集状态.采集中) { f.状态 = 新状态; } } } }
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(); } }