webBrowser加载页面时暂停循环的最佳方法是什么? [英] what's the best way to pause loop while webBrowser is loading page?
本文介绍了webBrowser加载页面时暂停循环的最佳方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要暂停循环,直到Web浏览器完成页面加载。
I need pause loop until that the webbrowser complete page load.
string[] lines = (string[]) Invoke((ReadLine)delegate
{
return logins.Lines;
});
foreach (string line in lines) {
//..
if (TryParseUserDetails(line, false, out data) {
//...
wb.Navigate(url.Next());
}
}
在继续循环之前如何等待 wb
页面加载?
how to wait the wb
page load to before continue loop?
我尝试使用轮询标志,在 WebBrowserDocumentCompletedEventHandler
回调函数中将变量设置为true
,然后:
I tried using polling-flags, setting an variable as true in WebBrowserDocumentCompletedEventHandler
callback function.
and then:
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(
delegate(object sender2,
WebBrowserDocumentCompletedEventArgs args)
{
done = true;
});
// ..
wb.Navigate(url.Next();
while (!done)
{
}
done = false;
我正在寻找类似的东西:
I'm looking for something like:
wb.WaitForDone();
感谢您的帮助。
推荐答案
您可以尝试使用AutoResetEvent而不是布尔值。像这样:
You can try to use an AutoResetEvent instead of the boolean. Like:
循环外:
AutoResetEvent evt = new AutoResetEvent(false);
然后事件处理程序:
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(
delegate(object sender2,
WebBrowserDocumentCompletedEventArgs args)
{
evt.Set();
});
,然后在循环中:
evt.WaitOne();
这篇关于webBrowser加载页面时暂停循环的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文