Dim thread1 As 新线程( AddressOf th10) 私有 Sub Form3_Load(发件人作为 对象, e As EventArgs)句柄 MyBase 。载荷 CheckForIllegalCrossThreadCalls = False Button1.PerformClick() 结束 Sub 私有 Sub Button1_Click(发件人作为 对象,e As EventArgs)句柄 Button1.Click thread1.Start() 结束 Sub 公共 Sub th10() WebBrowser3.Navigate( https:// www .somewebsite.com) WebBrowser3.ReadyState<> WebBrowserReadyState.Complete Application.DoEvents() 结束 Dim pos4 作为 长 Dim bp2 作为 字符串 Dim value1 As String = WebBrowser3.Document.Body.InnerText pos4 = InStr(pos4 + 1 ,value1, sometextfromwebsite,vbTextCompare) bp2 = value1.Substring(pos4) Dim startIndex1 作为 整数 = 17 Dim length1 作为 整数 = 16 Dim substring1 As 字符串 = bp2.Substring(startIndex1,length1) TextBox3.Text = substring1 结束 Sub 我有什么试过: 此错误显示在While WebBrowser3.ReadyState ...以及我将其更改为; 静态 start 作为 单 start = VB.Timer() 而 VB.Timer()< start + 5 Application.DoEvents() Loop (我不喜欢指定页面加载时间的想法,在某些情况下可能需要更长时间) ......似乎没问题,但是我在Dim value1 As String = WebBrowser3.Document.Body.InnerText解决方案 错误报告! 您忘记了URL末尾的引用 公共 Sub th10() WebBrowser3.Navigate( https://somewebsite.com) ' ^缺失引用此处 此代码无效。 Hi all..If I run the code below without threading everything works like it should, but when I start it as a new thread then I receive ‘System.InvalidCastException’ error with "Specified cast is not valid"Thanks in advance for any help you can provide.Dim thread1 As New Thread(AddressOf th10)Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load CheckForIllegalCrossThreadCalls = False Button1.PerformClick()End SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click thread1.Start()End SubPublic Sub th10() WebBrowser3.Navigate("https://www.somewebsite.com") While WebBrowser3.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() End While Dim pos4 As Long Dim bp2 As String Dim value1 As String = WebBrowser3.Document.Body.InnerText pos4 = InStr(pos4 + 1, value1, "sometextfromwebsite", vbTextCompare) bp2 = value1.Substring(pos4) Dim startIndex1 As Integer = 17 Dim length1 As Integer = 16 Dim substring1 As String = bp2.Substring(startIndex1, length1) TextBox3.Text = substring1End SubWhat I have tried:This error shows at "While WebBrowser3.ReadyState…" and when I change it to;Static start As Singlestart = VB.Timer()Do While VB.Timer() < start + 5Application.DoEvents()Loop(I don’t like the idea to specify a time for page load, in some cases it might take longer)…it seems to be fine, but then I receive the same error on "Dim value1 As String = WebBrowser3.Document.Body.InnerText" 解决方案 Bug report !you forgot a quote at the end of URLPublic Sub th10() WebBrowser3.Navigate("https://somewebsite.com") ' ^ missing quote herethis code can't have worked. 这篇关于具有“指定强制转换无效”的Vb多线程错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-19 15:54
查看更多