/ / Visual Basic - Počkajte, kým sa načíta webová stránka, ktorá nefunguje - vb.net, prehliadač, spánok

Visual Basic - Počkajte na načítanie webových stránok nefunguje - vb.net, prehliadač, spánok

Snažím sa načítať webovú stránku, čakať na jej úplné načítanie a po načítaní zobraziť okno s hlásením.

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
WebBrowser1.Navigate("https://www.google.com")
Do Until WebBrowser1.ReadyState = 4
Threading.Thread.Sleep(100)
Loop
MsgBox("Loaded")
End Sub

Keď však použijem toto, nič sa nestane, napriek tomu, že čakám asi 30 sekúnd. Ak odstránim všetko, čo ma opustí ...

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
WebBrowser1.Navigate("https://www.google.com")
End Sub

..., načíta sa dobre.

odpovede:

0 pre odpoveď č. 1

Používateľské rozhranie nebude načítať stránku, pretože ste priviazali vlákno používateľského rozhrania v nekonečnej (alebo aspoň blízko nekonečnej) slučke.

Namiesto čakania pre prehliadač načítať, asynchrónne reagovať na udalosť načítania prehliadača. Niečo ako toto:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
WebBrowser1.Navigate("https://www.google.com")
End Sub

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
MsgBox("Loaded")
End Sub

Kedykoľvek zistíte, že chcete aplikáciu pozastaviť a čakať, až sa niečo stane, je veľmi pravdepodobné, že sa musíte prihlásiť na odber udalosť keď sa niečo stane.


0 pre odpoveď č. 2

Ak to vidím správne, je to kvôli tomu, že zastavujete hlavné vlákno vždy, keď spustíte kontrolu. Nemohli ste pridať iba obsluhu udalosti na DocumentCompleted event?