2

好的,我整天都在寻找这个问题。我有一个循环,我在其中加载网页并解析它们。

问题是 Application.DoEvents 和 while 循环重置每个变量和计数器 Thread.Sleep() 会影响加载网页的线程 AutoResetEvent.WaitOne 也是如此

这是我的代码

private void button1_Click_1(object sender, EventArgs e)
{
//some code...
for (int i = 1; i < div.Children.Count; i++)
        {
            webview.Navigate(addr);
            //wait until page is loaded
            html_code.Text += "OK!"; //do further actions
        }
}

你注意到我有一个for循环,所以上面列出的所有方法都不起作用。我请你帮我解决我的问题

更新:我找到了解决方案。它在这里描述https://stackoverflow.com/a/4271581/1894634

4

1 回答 1

2

如果只需要html响应,最好使用WebClient.DownloadStringorWebClient.DownloadStringAsync方法

WebClient client = new WebClient ();
//client.Credentials = new NetworkCredential(username, password);
string html_code = client.DownloadString (addr);
于 2012-12-25T16:37:10.763 回答