Web浏览器控件挂起我的应用程序
问题描述:
我在WinForms应用程序上有一个按钮和一个Web浏览器控件。当我点击一个按钮时,它启动一个浏览器,但直到加载页面时,即使我使用单独的线程进行浏览器控制,我的应用程序仍会挂起。Web浏览器控件挂起我的应用程序
如何处理它,以便在页面加载时我的应用程序不会挂起?
private void button1_Click(object sender, EventArgs e)
{
Thread mythread = new Thread(new ThreadStart(go));
mythread.IsBackground = true;
mythread.Name = "mythread";
mythread.Start();
}
void go()
{
webBrowser1.Navigate("google.com");
}
答
的.navigate方法后,做到这一点...
Do
Sleep 100
Doevents
Loop until webbrowser1.busy = true and webbrowser1.readystate = 4
这应该排序在螺纹出来,.busy可能是你的WB控制版本.isbusy,看看我的其他网站浏览器相关的答案,如果你想实现一个适当的,更详细的方法暂停执行,直到网页浏览器真正完成加载网页。
让我知道它是如何解决你,如果我可以有任何进一步的帮助。
答
我有类似的问题,使用调度程序解决了该问题。由于您在代码背后尝试使用后台工作人员会给您带来错误。
尝试下面的按钮点击。
Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { go(); }));
命名空间为上面的System.Threading
+0
在WinForms中,需要使用Dispatcher.CurrentDispatcher。然后,至少在快乐的一天中(至今没有找到一种激发网络问题的方法)。 – 2017-06-16 08:31:25
不要在线程中执行'go'。 – 2012-03-10 22:54:46
您能否描述您使用了哪种网页浏览器控件,可能包含链接以便人们快速了解它? – oleksii 2012-03-10 22:58:13
包含在vs 2010工具箱中的网络浏览器 – motevalizadeh 2012-03-10 23:08:44