如何在Web浏览器中逐行保持延迟

时间:2017-12-08 15:35:20

标签: c#

嗨我想要逐行延迟5秒钟。 我使用了以下代码,但它无法正常工作。

 private void button3_Click(object sender, System.EventArgs e)
 {
        textBox4.Text = textBox3.Text;
        string[] groups = textBox4.Text.Split('\n');

        webBrowser1.Navigate("https://mbasic.facebook.com/groups/516524655403741");
        Thread.Sleep(5000);
        webBrowser1.Navigate("https://mbasic.facebook.com/groups/548734261950831");
        Thread.Sleep(5000);
        webBrowser1.Navigate("https://mbasic.facebook.com/groups/202669939887242");
        Thread.Sleep(5000);
        webBrowser1.Navigate("https://mbasic.facebook.com/groups/259531940895144");
        Thread.Sleep(5000);
}

执行此代码后。它有 20 秒重定向到上一个网站...

但是我想在 5 秒内运行所有网站到 5 秒。 请解决我的问题。

1 个答案:

答案 0 :(得分:3)

问题不在于您使用的webbrowser客户端。问题是你要阻止“GUI线程”总共20秒。在这20秒内,现在将进行GUI更新,直到您的button3_Click()方法完成。

重写代码,其他线程正在执行Sleep()Navigate()方法。当您想要从非“GUI线程”更新GUI时,可能需要使用Dispatcher.Invoke()方法再次访问“GUI线程”。