/// <summary> /// 启动web爬虫线程 /// </summary> /// <param name="Link">要爬的链接</param> /// <returns></returns> private static int WebCrawlStart(string Link) { WebCrawl wc = new WebCrawl(); wc.link = Link; log.Info("启动web爬虫的线程" + Link); Thread tr = new Thread(wc.StartCrawl); //启动子线程 tr.Start(); while (true) { if (!wc.flag) //监控是否爬虫完成 { if (wc.QWebAdd.Count != 0) //若有新增 { qsAdd.Enqueue(wc.QWebAdd.Dequeue()); //取出加入处理队列 } else { lxwfin.Add(Link); //完全爬完就加入结束列表并结束线程 log.Info("web爬虫的线程结束" + Link); return(1); } } else { if (wc.QWebAdd.Count != 0) //若有新增 { qsAdd.Enqueue(wc.QWebAdd.Dequeue()); //取出加入处理队列 } } } }
/// <summary> /// 启动web本地数据库同步检查线程 /// </summary> /// <returns></returns> private static int WebCheckStart() { WebCrawl wc = new WebCrawl(); log.Info("启动web本地数据库同步检查线程"); Thread tr = new Thread(wc.Check); //启动子线程 tr.Start(); while (true) { if (!wc.flag) //若未结束 { if (wc.QWebChk.Count != 0) //取出加入检查队列 { qsChk.Enqueue(wc.QWebChk.Dequeue()); } else { log.Info("web本地数据库同步检查线程结束"); return(1); } } else { if (wc.QWebChk.Count != 0) //取出加入检查队列 { qsChk.Enqueue(wc.QWebChk.Dequeue()); } } } }