等待.5秒,然后继续代码VB.net

koo*_*783 21 vb.net wait

我有一个代码,我希望它能在中间的某个地方等待,直到前进.在WebBrowser1.Document.Window.DomWindow.execscript("checkPasswordConfirm();","JavaScript")之后,我希望它等待.5秒,然后执行剩下的代码.

    WebBrowser1.Document.Window.DomWindow.execscript("checkPasswordConfirm();","JavaScript")

    Dim allelements As HtmlElementCollection = WebBrowser1.Document.All
    For Each webpageelement As HtmlElement In allelements
        If webpageelement.InnerText = "Sign Up" Then
            webpageelement.InvokeMember("click")
        End If
    Next
Run Code Online (Sandbox Code Playgroud)

Sam*_*Sam 40

您需要使用System.Threading.Thread.Sleep(毫秒数).

WebBrowser1.Document.Window.DomWindow.execscript("checkPasswordConfirm();","JavaScript")

Threading.Thread.Sleep(500) ' 500 milliseconds = 0.5 seconds

Dim allelements As HtmlElementCollection = WebBrowser1.Document.All
For Each webpageelement As HtmlElement In allelements
    If webpageelement.InnerText = "Sign Up" Then
        webpageelement.InvokeMember("click")
    End If
Next
Run Code Online (Sandbox Code Playgroud)

  • 每当我这样做时,程序首先冻结,然后执行代码。 (2认同)

Ali*_*Ali 8

我认为这个问题很老,但我提供了另一个答案,因为它对其他人有用:

thread.sleep不是一个好的等待方法,因为通常它会冻结软件直到完成它的时间,这个函数更好:

   Imports VB = Microsoft.VisualBasic

   Public Sub wait(ByVal seconds As Single)
    Static start As Single
    start = VB.Timer()
    Do While VB.Timer() < start + seconds
        System.Windows.Forms.Application.DoEvents()
    Loop
End Sub
Run Code Online (Sandbox Code Playgroud)

此功能在没有冻结软件的情况下等待特定时间,但会增加CPU使用率,但是下面的功能不仅不会冻结软件,还会增加CPU使用率:

    Private Sub wait(ByVal seconds As Integer)
    For i As Integer = 0 To seconds * 100
        System.Threading.Thread.Sleep(10)
        Application.DoEvents()
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)


小智 5

Imports VB = Microsoft.VisualBasic

Public Sub wait(ByVal seconds As Single)
    Static start As Single
    start = VB.Timer()
    Do While VB.Timer() < start + seconds
        System.Windows.Forms.Application.DoEvents()
    Loop
End Sub
Run Code Online (Sandbox Code Playgroud)

%20+ 高 CPU 使用率 + 无延迟

Private Sub wait(ByVal seconds As Integer)
    For i As Integer = 0 To seconds * 100
        System.Threading.Thread.Sleep(10)
        Application.DoEvents()
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

%0.1 CPU 使用率 + 高延迟


Jon*_*Jon 4

创建一个计时器,当它滴答作响时,它会激活您想要的任何代码。确保计时器代码中的第一行是:

timer.enabled = false
Run Code Online (Sandbox Code Playgroud)

将计时器替换为您命名的计时器。

然后在您的代码中使用它:

   WebBrowser1.Document.Window.DomWindow.execscript("checkPasswordConfirm();","JavaScript")
timer.enabled = true
Dim allelements As HtmlElementCollection = WebBrowser1.Document.All
For Each webpageelement As HtmlElement In allelements
    If webpageelement.InnerText = "Sign Up" Then
        webpageelement.InvokeMember("click")
    End If
Next
Run Code Online (Sandbox Code Playgroud)