Prova a fare come nell'esempio che ti ho postato in precedenza. Il riferimento al backgroud worker viene passato come parametro alla funzione, mentre nel tuo caso tu punti direttamente alla form. Questo è il pezzo di codice all'interno dell'esempio:
' This event handler is where the actual work is done.
Private Sub backgroundWorker1_DoWork( _
ByVal sender As Object, _
ByVal e As DoWorkEventArgs) _
Handles backgroundWorker1.DoWork
' Get the BackgroundWorker object that raised this event.
Dim worker As BackgroundWorker = _
CType(sender, BackgroundWorker)
' Assign the result of the computation
' to the Result property of the DoWorkEventArgs
' object. This is will be available to the
' RunWorkerCompleted eventhandler.
e.Result = ComputeFibonacci(e.Argument, worker, e)
End Sub 'backgroundWorker1_DoWork
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko