求教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一定不能多线程。别折腾了。
即便放在多线程,也得和界面线程同步,等于单线程。