读书人

求教vb.net webbrowser的多线程有关问

发布时间: 2013-07-01 12:33:04 作者: rapoo

求教vb.net webbrowser的多线程问题,很好玩
代码是这样:
。。。。。。
WebBrowser2.DocumentText = partHtml

While WebBrowser2.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
System.Threading.Thread.Sleep(100)
End While

Dim InnerText As String = CStr(WebBrowser2.Document.Body.InnerText)
。。。。。。

单线程没问题,但是放到多线程中,到While WebBrowser2.ReadyState <> WebBrowserReadyState.Complete 这句就异常:“未处理invalidcastexception”,指定的转换无效。于是我把WHILE循环去掉了尝试一下,结果到了这一句 Dim InnerText As String = CStr(WebBrowser2.Document.Body.InnerText) 还是那个异常。怎么也过不去,大家帮支个招吧,强调:一定实在非UI线程中,也就是必须多线程。这个控件和其他任何控件没关系,这个线程涉及到的控件就是它。别看他叫webbrowser2,其实没有1,整个工程也就它哥一个webbrowser。
[解决办法]
webbrowser一定不能多线程。别折腾了。

即便放在多线程,也得和界面线程同步,等于单线程。

读书人网 >VB Dotnet

热点推荐