若等闲
衣带渐宽终不悔,为伊消得人憔悴

 

private delegate sub(or function) dele_1   
     
private dele_2 as dele_1
     
private iasyync_test as IAsyncResult
     在form_load里面
      
Private 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(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(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()
         
'想进行的操作。
         dele_2.endinvoke(iasync_test)
   
end sub


posted on 2005-01-08 22:34  飘飘洒洒......  阅读(1316)  评论(0编辑  收藏  举报