我有很多網址(約800)從網上下載。我有一個類:HttpDownloader.cs與HttpWebRequest類一起使用來下載並獲取html頁面。之後,我通過正則表達式來對頁面進行解析。通過BackgroundWorker組件從網上下載很多頁面
我想使用BackgroundWorker組件,但是我不知道該怎麼做全部是的頁面。通過一個循環,或類似的東西。
我的代碼:
我試着使用線程池用,它真的沒有問題。我嘗試了4個網址,並沒有奏效。
foreach (string link in MyListOfUrls)
{
ThreadPool.QueueUserWorkItem((o) => {
HttpDownloader httpDownload = new HttpDownloader(link);
string htmlDoc = httpDownload.GetPage();//get the html of the page
HtmlDocument doc=doc.LoadHtml(htmlDoc);//load html string to doc for pharsing
DoPharsing();//my func for pharsing
Save();//save into dataBase
});
}
因爲我在我的FUNC連接到數據庫和數據表使用我得到一個異常,當我使用線程池:
「禁用的,因爲以前的功能評價 超時功能評價你必須繼續執行到重新啓用功能 評估。「
所以,我無法從DataTable中獲取數據。也許我需要下載所有,然後做pharsing和保存??
如何將其更改爲BackgroundWorker組件的異步?
p.s.不要使用Async Tpc建議我,因爲我沒有設法下載它。
感謝
是否要同時執行多個下載,或者簡單地從GUI下載(使其異步)? (順便說一句,它的解析,而不是phanal) – digEmAll
@digEmAll,我想同時執行多個下載。要更加快速地下載**全部**頁面。 –
你有什麼嘗試?互聯網上有許多關於後臺工人類的教程。你用這些教程得到了多少東西,你有什麼特別的困擾?請發佈您的代碼嘗試使用BackgroundWorker。 –