C# 网络浏览器控制问题

C# 网络浏览器控制问题,c#,webbrowser-control,C#,Webbrowser Control,我正在使用以下代码: //I store the website urls in mylist list<string> mylist=new list<string>(); foreach(string webname in mylist) { wbmain.navigate(webname); } //我将网站URL存储在mylist中 list mylist=新列表(); foreach(mylist中的字符串webname) { wbmain

我正在使用以下代码:

//I store the website urls in mylist
list<string> mylist=new list<string>();     

foreach(string webname in mylist)
{
    wbmain.navigate(webname);
}
//我将网站URL存储在mylist中
list mylist=新列表();
foreach(mylist中的字符串webname)
{
wbmain.navigate(webname);
}
但是代码中有一个问题是wbmain。导航第一个url,不要等待第一个url打开,它将打开第二个…………并显示最后一个url

最后我看到了最后一页

如果打开第一个url并等待15秒再打开第二个页面,我该如何检查?

您可以尝试:

List<string> myList = new List<string>();

foreach(string webName in myList)
{
    wbmain.navigate(webName);

    // Sleep for 15 seconds.
    System.Threading.Thread.Sleep(15000);
}
List myList=new List();
foreach(myList中的字符串webName)
{
wbmain.navigate(webName);
//睡15秒钟。
系统线程线程睡眠(15000);
}
…此示例假定您正在WinForms中工作

有一种更好(正确)的方法等待页面加载。WebBrowser控件有一个
DocumentCompleted
事件,可用于在每次当前页面加载完成时重新加载新地址。检查MSDN文档的链接:


您也可以在一个新选项卡中跟踪并打开每个选项卡。

Thread.Sleep会阻止webbrowser,因为它正试图通知主线程导航事件,而通知被Thread.Sleep阻止。@Sheng这个例子很快,我想不起来,这就是为什么我发布了更好(正确)的消息等待页面完成加载的方式。