Vb.net 在VB中,如何在不使用sleep命令的情况下生成wait命令?

Vb.net 在VB中,如何在不使用sleep命令的情况下生成wait命令?,vb.net,Vb.net,我试图在VB窗体中找到一种wait命令,但我不想要sleep命令,因为它会在执行所有代码之前冻结程序。有没有办法做到这一点 TextBox1.Text = "0" ' (Code goes here) TextBox2.Text = "0" 解决这个问题的简单方法是使用Async/wait和Task.Delay 只要这样做: Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Cli

我试图在VB窗体中找到一种wait命令,但我不想要sleep命令,因为它会在执行所有代码之前冻结程序。有没有办法做到这一点

TextBox1.Text = "0"
' (Code goes here)
TextBox2.Text = "0"

解决这个问题的简单方法是使用
Async
/
wait
Task.Delay

只要这样做:

Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Text = "Immediately"
    Await Task.Delay(TimeSpan.FromSeconds(2.0))
    TextBox1.Text = "Later"
End Sub
请注意,我必须将标准的
Private子按钮1\u Click
处理程序签名更改为
Private Async子按钮1\u Click

另一个选项是使用Windows窗体计时器。只需将工具箱中的一个拖到表单上

然后你可以这样做:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Text = "Immediately"
    Timer1.Interval = 2000
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    TextBox1.Text = "Later"
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Timer1.Enabled = False
    TextBox1.Text = "Stopped"
End Sub
如果要在计时器更新文本之前停止计时器,可以执行以下操作:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Text = "Immediately"
    Timer1.Interval = 2000
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    TextBox1.Text = "Later"
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Timer1.Enabled = False
    TextBox1.Text = "Stopped"
End Sub

在此代码场景中“等待”的目的是什么?请停止标记垃圾邮件。Net VBA VBScript。他们是完全不同的语言。它们不一样只是因为它们都是从vb开始的,就像猫、汽车和胡萝卜一样,它们都是从ca开始的。标记在这里有意义和相关性。请仅使用实际适用于您的问题的方法。此场景中的“等待”命令是在继续下一行代码之前执行一定的暂停时间(如一秒钟)。如果您使用的是.NET 4.5或更高版本,请将包含此代码的方法标记为
Async
,然后使用
wait Task.Delay(1000)
用于非阻塞一秒延迟。有关Async/Await的更多信息,请阅读。@AhmedAbdelhameed请将其作为答案重新编写,因为从逻辑上讲,这是一个答案。