Jack-tek460 Ответов: 1

Многопоточность Vb с ошибкой " указанное приведение недопустимо”


Всем привет..
Если я запускаю приведенный ниже код без резьбы, все работает так, как должно, но когда я запускаю его как новый поток, то получаю "систему".Ошибка InvalidCastException с " указанным приведением недопустима”

Заранее благодарю вас за любую помощь, которую вы можете оказать.


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 Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    thread1.Start()
End Sub

Public 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 = substring1
End Sub


Что я уже пробовал:

Эта ошибка отображается в "While WebBrowser3. ReadyState..." и когда я меняю ее на;

Static start As Single
start = VB.Timer()
Do While VB.Timer() < start + 5
Application.DoEvents()
Loop


(Мне не нравится идея указывать время загрузки страницы, в некоторых случаях это может занять больше времени)

...вроде бы все в порядке, но потом я получаю ту же ошибку на “Dim value1 As String = WebBrowser3.Document.Body.Через свойство innerText”

1 Ответов

Рейтинг:
2

Patrice T

Сообщение об ошибке !
вы забыли цитату в конце URL-адреса

Public Sub th10()
       WebBrowser3.Navigate("https://somewebsite.com")
       '                                            ^ missing quote here

этот код не мог сработать.


Patrice T

Вы только что сделали поправку.

Jack-tek460

Спасибо, теперь я понимаю. Обновил свой вопрос