privatedelegateSub (()sub(orFunction )()function) dele_1 private dele_2 as dele_1 private iasyync_test as IAsyncResult 在form_load里面 PrivateSub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load dele_2 =New dele_1(AddressOf test1) 'test1 是你想要异步调用的方法 iasync_test=dele_2.begininvoke(nothing,nothing) '开始异步调用 End Sub ' 如果想知道异步调用是否完成,加个button。 PrivateSub Button2_Click()Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If iasync.IsCompleted =TrueThen'已经完成调用 dele_2.endinvoke(iasync) Else'未完成 MessageBox.Show("not finished!") EndIf End Sub ' 另外你也可以自己写个回掉函数,在异步调用完成的时候进行别的操作。 PrivateSub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.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 privateSub back_test()sub back_test() '想进行的操作。 dele_2.endinvoke(iasync_test) end sub