日期:2014-05-18  浏览次数:21335 次

webbrowser 卡死
一个窗口,里边有一文件框,一个按钮,一个webbrowser 控件

在文本框里输入网站,点击按钮 在webbrowser 控件显示网页

问题:

在浏览网页时,由于网页加载的速度太慢或其它一些不知道的网页的原因,webbrowser 控件响应不了,直接卡在那边,造成整个窗口死在那了 窗口标题上显示 (无法响应)


像这样的情况要怎么解决? 希望是即使webbrowser 控件卡了无响应了,但不要影响到整个窗口假死掉。

我的很多用户反应这个问题不怎么怎么解决?用多线程来加载webbrowser 控件的网页吗?

------解决方案--------------------
没有根本解决办法,目前最常用方法是界面分离,就是让webBrowser控件和主界面分离。要么用单独线程创建webBrowser,要么用单独进程创建webBrowser。不管哪种方法,都需要去协调主界面和webbrowser窗口间的位置关系,这个比较麻烦。

我还想到个暴力方法:创建一个单独线程,里面设一定时器函数,主线程(webbrowser所在的)每隔一定时给那个线程发一信号。如果webbrowser卡死,那么就会较长时间没信号,在线程里强制把webbrowser消毁掉(无法停止它的,因为它已经卡死了)。

楼主不是做网页浏览器吧?
------解决方案--------------------
单个线程肯定会卡.建议再创建个进程用WebBrowser.

------解决方案--------------------
不知,除了webServer 控件之处还有哪些可以解释html 与js 与CSS 的第三方控件。