Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Delegate Function InsertDataListDelegate() As Boolean
Delegate Sub FlashControllerDelegate(ByVal i As Integer)
Dim instanceDelegate As InsertDataListDelegate = AddressOf InsertDataList
Public Function InsertDataList() As Boolean
Dim i As Long
'Throw New Exception("fff")
For i = 1 To 9999
FlashController(i)
Next
MsgBox("OVER")
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ar As System.IAsyncResult
ar = instanceDelegate.BeginInvoke(CallBackDelegate, Nothing)
End Sub
Public Sub FlashController(ByVal i As Integer)
If Me.InvokeRequired Then
Invoke(New FlashControllerDelegate(AddressOf FlashController), i)
Return
End If
ComboBox1.Items.Add(i)
End Sub
'回调函数的参数
Dim myValue As Integer = 10
'回调函数的定义
Sub PutToDesk(ByVal ar As IAsyncResult)
Console.WriteLine(ar.IsCompleted) '拿到参数
'相应的操作
End Sub
Private CallBackDelegate As AsyncCallback = AddressOf PutToDesk
End Class