我想在循环中访问多个链接。
访问网站后,我希望线程等到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()
冻结。
由于某些原因,异步方法或自动重新发现似乎无法正常工作。
我需要找到一种等待documentCompleted
完成的方法。
答案 0 :(得分:0)
浏览器通常使用一个GUI线程。您使用WaitOne阻止线程。您应该使用在一个线程中工作的不同同步机制。