private void btnStart_Click(object sender, EventArgs e) { btnStart.Enabled = false; #region 日志文件记录 ClsLog clsLog = new ClsLog(); Thread LogThread = new Thread(new ThreadStart(clsLog.WriteLog)); LogThread.Start(); #endregion #region 抓取线程 clsLog.AddLog(DateTime.Now.ToString(), "抓取开始"); ClsPageUrl clsPageUrl = new ClsPageUrl(); Thread SpiderThread = new Thread(new ThreadStart(clsPageUrl.SpiderData)); SpiderThread.Start(); #endregion #region 分析线程 ClsPageContent clsPageContent = new ClsPageContent(); Thread AnalyseThread = new Thread(new ThreadStart(clsPageContent.AnalyseData)); AnalyseThread.Start(); #endregion #region 数据库插入操作线程 //ClsDB clsDB = new ClsDB(); //Thread dbThread = new Thread(new ThreadStart(clsDB.ExecPageDBData)); //dbThread.Start(); #endregion #region 事件注册 EventController helper = new EventController(); /// 所有需要分析的,都完成事件 helper.OnAllItemAnalyzeCompleted += (senders, es) => { if (Program.clsUrlSignal == 0 && Program.clsContentSignal == 0 && Program.clsDBSignal == 0) { SpiderThread.Abort(); AnalyseThread.Abort(); //dbThread.Abort(); Thread.Sleep(20000); LogThread.Abort(); clsLog.AddLog(DateTime.Now.ToString(), "抓取结束"); } }; #endregion //入口方法 spiderMain(); }
private void btnStart_Click(object sender, EventArgs e) { if (Program.userList.Count <= 0) { MessageBox.Show("请导入用户账号"); return; } btnStart.Enabled = false; int spiderNum = 0; int xmlnamenum = 0; if (useproxy.Checked) { if (Program.IPList.Count < 0) { MessageBox.Show("ip列表为空,请到ip.xml编辑"); return; } } //配置更新 Program.sysPara.BegSpiderIntervalTime = Convert.ToInt32(spidertime.Value * 1000); Program.sysPara.IsProxy = useproxy.Checked ? "true" : "false"; btnStart.Enabled = false; #region 日志文件记录 ClsLog clsLog = new ClsLog(); Thread LogThread = new Thread(new ThreadStart(clsLog.WriteLog)); LogThread.Start(); #endregion #region 抓取线程 clsLog.AddLog(DateTime.Now.ToString(), "抓取开始"); ClsPageUrl clsPageUrl = new ClsPageUrl(); Thread SpiderThread = new Thread(new ThreadStart(clsPageUrl.SpiderData)); SpiderThread.Start(); #endregion #region 分析线程 ClsPageContent clsPageContent = new ClsPageContent(); Thread AnalyseThread = new Thread(new ThreadStart(clsPageContent.AnalyseData)); AnalyseThread.Start(); #endregion #region 数据库插入操作线程 //ClsDB clsDB = new ClsDB(); //Thread dbThread = new Thread(new ThreadStart(clsDB.ExecPageDBData)); //dbThread.Start(); #endregion #region 事件注册 /// 所有需要分析的,都完成事件 Program.helper.OnAllItemAnalyzeCompleted += (senders, es) => { if (Program.clsUrlSignal == 0 && Program.clsContentSignal == 0 && Program.clsDBSignal == 0) { SpiderThread.Abort(); AnalyseThread.Abort(); //dbThread.Abort(); Thread.Sleep(20000); LogThread.Abort(); clsLog.AddLog(DateTime.Now.ToString(), "第" + Program.CurrSpiderTimes + "次抓取结束"); Program.CurrSpiderTimes++; clsLog.AddLog(DateTime.Now.ToString(), "第" + Program.CurrSpiderTimes + "次开始"); //入口方法 spiderMain(); } Application.DoEvents(); }; Program.helper.OntxtviewCompleted += (senders, es) => { EventControllerArgs _tem = es as EventControllerArgs; txtview.AppendText(_tem.Msg + Environment.NewLine); Application.DoEvents(); }; #endregion //入口方法 spiderMain(); }