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