C# 在循环中触发WebBrowser.DocumentCompleted事件
我正在开发一个简单的应用程序,它需要遍历URL列表,这些URL在for-each循环中传递给WebBrowser Navigate函数。我希望看到DocumentCompleted事件在每次调用Navigate函数后触发,但它似乎只有在整个表单完成加载后才会触发,而循环也完成了 我想我在这里遗漏了一些基本的东西,但是一些帮助和建议会很好 谢谢 下面是我正在尝试的代码示例 此foreach循环在我正在使用的WinForms页面的Form Load事件中运行C# 在循环中触发WebBrowser.DocumentCompleted事件,c#,webbrowser-control,navigateurl,C#,Webbrowser Control,Navigateurl,我正在开发一个简单的应用程序,它需要遍历URL列表,这些URL在for-each循环中传递给WebBrowser Navigate函数。我希望看到DocumentCompleted事件在每次调用Navigate函数后触发,但它似乎只有在整个表单完成加载后才会触发,而循环也完成了 我想我在这里遗漏了一些基本的东西,但是一些帮助和建议会很好 谢谢 下面是我正在尝试的代码示例 此foreach循环在我正在使用的WinForms页面的Form Load事件中运行 int id =
int id = 0;
foreach (DataRow row in quals.Rows)
{
URN = row["LAIM_REF"].ToString();
string URN_formated = URN.Replace("/", "_");
string URL = "http://URL_I_AM_GOING_TOO/";
string FullURL = URL + URN_formated;
wbrBrowser.ScriptErrorsSuppressed = true;
wbrBrowser.Refresh();
wbrBrowser.Navigate(FullURL);
id += 1;
label1.Text = id.ToString();
}
在循环到达直线的点处:
wbrBrowser.Navigate(FullURL);
我希望这次活动:
private void wbrBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
...
}
因此,能够针对循环中返回的每个URL运行进程
谢谢 我用了:
while (wbrBackground.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }
完成导航功能后,它现在可以正常工作。您能提供一些代码来显示您迄今为止所做的尝试吗?它是WPF还是WinForm应用程序?另外,一些诊断跟踪也会很有用,如果有的话。我刚刚在原始问题中添加了一些代码片段,希望它能帮助我找到问题的解决方案。这是不好的:1它使用了一种方法,徒劳地烧掉了CPU核;2它使用了DoEvents,也就是说。谢谢你-你对如何通过其他方式实现这一点有什么建议吗?我有,例如,我想我以前发布过它;或者,这两个看起来都很棒!我特别关注的是使用example.com测试站点的一个,但是我无法让它在winform中工作。。。??这是专门写来作为控制台应用程序使用的吗!!正是我想要的!非常感谢你!这正是我所寻找的,并且能够使用这个框架来实现我所追求的!