循环和时间延迟

Loop and Time Delay

我创建了一个加载网页的程序。 然后我编写了 3 个按钮,这些按钮在网站上执行操作。这个功能很好。

但现在我想实现一个按钮,它会单击 Button1 一次,然后它应该等待 5 秒,然后循环应该开始并单击 Button2 10 次。在此之后,整个过程应该重新开始。该程序有点像机器人。

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    Call Button1_Click(sender, e)
    Application.Wait(Now + TimeValue("0:00:10"))
End Sub

Application.Wait 不起作用,因为 Application 不是 System.Windows 表单的成员。

如何实现延迟?如何实现循环?

根据评论,Threading.Thread.Sleep() 给您带来网站未加载的问题。问题是 Threading.Thread.Sleep() 在冻结代码时会阻止整个程序执行代码。下面是如何让你的程序等待一段时间。

Public Class Form1

    Private Async Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        MessageBox.Show("Commands before waiting")
        Await Wait(5000)
        MessageBox.Show("Commands after waiting")
    End Sub

    Private Async Function Wait(ByVal ms As Integer) As Task
        Await Task.Delay(ms)
    End Function

End Class

只需将 MessageBox 替换为等待前后所需的命令即可。

注意:这需要 .NET Framework 4.5 或更高版本

根据 Fabio 评论更新

可以直接完成,不需要像这样的Wait方法:

Public Class Form1

    Private Async Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        MessageBox.Show("Commands before waiting")
        Await Task.Delay(5000)
        MessageBox.Show("Commands after waiting")
    End Sub

End Class

这也可以在 .NET Framework 3.5 或更高版本中使用,但它需要一些可以从 here

下载的库