日期:2014-05-19  浏览次数:20973 次

WebBrower.Navigate与Thread.Sleep()之间的问题(高手请进)
首先说明,这个问题不是很简单,建议各位回答前开下VS写个小程序试一试。

form中就一个webBrowser1和一个button.初始设webBrowser的URL为 "http://www.baidu.com ".   单击button执行以下函数。

button_click()
{
      string   sites[]   =   new   string[]{ "http://www.sina.com.cn ",   "http://www.sohu.com ",   "http://www.163.com "};

      foreach(string   site   in   sites)
      {
              webBrowser1.Navigate(site);
              Thread.Sleep(5000);     //等待加载
              webBrowser1.GoBack();
      }
}
我的意图是:依次访问sina,sohu,163.可是按照上面的代码,每次都只能访问到163.   哪位大侠可以解决这个问题?


------解决方案--------------------
考虑用WebBrowser.DocumentCompleted 事件
------解决方案--------------------
string[] sites = new string[] { "http://www.sina.com.cn ", "http://www.163.com ", "http://www.sohu.com " };
int c = -1;
//文档加载完成
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//MessageBox.Show( "加载完成 ");
webBrowser1.GoBack();
button1_Click(null, null);
}


private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled =true;

}

private void timer1_Tick(object sender, EventArgs e)
{
c++;
if(c < sites.Length)
{
webBrowser1.Navigate(sites[c]);
}
else
{
c = -1;
}
}