VB.NET中的异步调用

 

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.ObjectByVal 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.ObjectByVal 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.ObjectByVal 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


转载于:https://www.cnblogs.com/Contlu/archive/2005/01/08/88823.html

你可能感兴趣的:(VB.NET中的异步调用)