Hi,
John Veldthuis said:
Also forgot I need to return multiple results as well.
That doesn't change much, as per my previous reply you could use an array,
Hashtable or class to group parameters and pass them as an object (for
e.Argument and e.Result ):
* Example using an array (multiple args & results):
' start BackgroundWorker
BackgroundWorker1.RunWorkerAsync( New Object() { 10, "test" } )
' DoWork event
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e
As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim args As Object() = DirectCast( e.Argument, Object() )
Dim arg1 As Integer = CInt(args(0))
Dim arg2 As String = CStr(args(1))
' do something
e.Result = New Object() { -1, "test" }
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object,
ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles
BackgroundWorker1.RunWorkerCompleted
Dim ret As Object() = DirectCast( e.Result, Object() )
Dim ret1 As Integer = CInt(ret(0))
Dim ret2 As String = CStr(ret(1))
End Sub
HTH,
Greetings