忙碌了几个月没时间更新,今天发点小更新。
在VB.NET中,使用System.Threading.Thread.Sleep方法可以使当前线程暂停执行指定的时间。这个操作是线程安全的,但它会影响当前线程的执行,可能影响其他正在运行的操作。如果想要暂停当前线程的执行而不影响其他线程,可以使用异步编程模式。
Public Class form1
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ii As Integer
For ii = 1 To 50
Await DoAsyncOperation()
Label1.Text = ii
Next
End Sub
Private Async Function DoAsyncOperation() As Task
Await Task.Delay(1000) ' 延迟1000毫秒,即1秒
End Function
End Class
在“ Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click”中加入关键词“Async”。
一个label控件和一个按键,每隔1秒就加1。这个功能同timer控件,作用在于有些地步不方便使用timer控件,而使用 system.Threading.Thread.Sleep又会引起无法同时进行其他操作。
可以放在模块中作为公共函数引用,并在引用时赋予新的时间值:
Module Module1
public Async Function DoAsyncOperation(ByVal dt As Integer) As Task
Await Task.Delay(dt)
End Function
End Module
然后在调用时赋予时间间隔值:
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ii As Integer
For ii = 1 To 50
Await DoAsyncOperation(1000) ''间隔1000毫秒,即1秒
Label1.Text = ii
Next
End Sub