1
我有多個鏈接,我想在一個循環中訪問。C#使用Webbrowser訪問多個鏈接
訪問了一個站點後,我希望線程等到documentCompleted
完成後再訪問下一個鏈接。
foreach (HtmlElement link in linkArray)
{
OpenNewProduct(link.ToString());
}
public void OpenNewProduct(string url)
{
WebBrowser webBrowser = new WebBrowser();
webBrowser.DocumentCompleted += product_DocumentCompleted;
webBrowser.Navigated += new WebBrowserNavigatedEventHandler(webBrowser1_Navigated);
webBrowser.Navigate(url);
_waitForPageProccesingHandle.WaitOne();
}
private void product_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
notHeb();
notRedirected(sender, e);
((Control)webBrowser1).Enabled = false;
getProduct();
_waitForPageProccesingHandle.Set();
}
瀏覽器正在凍結WaitOne()
。
由於某些原因,異步方法或autoresetevent似乎不起作用。
我需要找到一種方法,等到documentCompleted
完成。
你有什麼機制? – user3927030
嗯,你不應該阻止GUI線程。對於你的問題,你可以在文檔完成時在GUI線程上安排一個新的任務。這可以通過使用計時器並將OpenNewProduct設置爲計時器功能來完成。 – smibe