[英]C# How to do WebBrowserDocumentComplete in a foreach loop
I thought this might be simple but i guess it's not, i have like 100 websites i need to load into a browser. 我认为这可能很简单,但我想并非如此,我有100个网站需要加载到浏览器中。 I've loaded them into a List but my foreach happens before the website loads.
我已经将它们加载到列表中,但是我的foreach发生在网站加载之前。 Does anybody have a way to make each of these load and actually process WebBrowserDocumentComplete before loading the next one?
是否有人有办法进行所有这些加载,并在加载下一个之前实际处理WebBrowserDocumentComplete? queue doesn't work.
队列不起作用。
foreach(string oneWebsite in ALLWebSites)
{
webBrowser1.Navigate(oneWebsite);
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//do work
}
An AutoResetEvent should work 一个AutoResetEvent应该工作
http://msdn.microsoft.com/en-us/library/system.threading.waithandle.waitone(v=vs.71).aspx http://msdn.microsoft.com/zh-cn/library/system.threading.waithandle.waitone(v=vs.71).aspx
static AutoResetEvent autoEvent = new AutoResetEvent(false);
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
foreach(string oneWebsite in ALLWebSites)
{
webBrowser1.Navigate(oneWebsite);
autoEvent.WaitOne(new TimeSpan(0, 1, 0), false))
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//do work
autoEvent.Set();
}
在DocumentCOmplete处理程序的末尾,使浏览器导航到列表中的下一个站点。
Something like this should work: 这样的事情应该起作用:
var websiteIndex = 0;
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
private void ProcessWebsite()
{
if (websiteIndex < ALLWebSites.Count)
{
webBrowser1.Navigate(ALLWebSites[websiteIndex]);
websiteIndex++;
}
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//do work
// when work is done, process next one
ProcessWebsite();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.