首页  ·  知识 ·  编程语言
VB.NET中的异步调用
Contlu  http://www.cnblogs.com/Contlu/  VB  编辑:dezai  图片来源:网络
private delegate Sub (()sub(or Function )()function) dele_1 private dele_2 as dele_1 

private delegate Sub (()sub(or Function )()function) dele_1  
     private dele_2 as dele_1
     private iasyync_test as IAsyncResult
     在form_load里面
      Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dele_2 = New dele_1(AddressOf test1)      'test1 是你想要异步调用的方法
        iasync_test=dele_2.begininvoke(nothing,nothing)  '开始异步调用
    End Sub

     ' 如果想知道异步调用是否完成,加个button。
     Private Sub Button2_Click()Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If iasync.IsCompleted = True Then  '已经完成调用
                     dele_2.endinvoke(iasync)
                    Else                    '未完成
            MessageBox.Show("not finished!")
        End If      
    End Sub
   ' 另外你也可以自己写个回掉函数,在异步调用完成的时候进行别的操作。
  Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dele_2 = New dele_1(AddressOf test1)      'test1 是你想要异步调用的方法
                dim ab as asynccallback
       ab=new asynccallback(address of back_test)    'back_test是要进行回掉的函数
       iasync_test=dele_2.begininvoke(ab,nothing)    '开始异步调用
    End Sub

    private Sub back_test()sub back_test()
         '想进行的操作。
         dele_2.endinvoke(iasync_test)
   end sub

本文作者:Contlu 来源:http://www.cnblogs.com/Contlu/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读