vb.net 中的异步延时

忙碌了几个月没时间更新,今天发点小更新。

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值