The problem is simple: you cannot access UI components except from the thread that created them - i.e. the UI thread.
When you try from another thread it doesn't work, and should throw an exception.
You need to PInvoke it:
Private Sub ShowProgress(text As String)
If InvokeRequired Then
Invoke(New MethodInvoker(Function() Do
ShowProgress(text)
End Function))
Else
Me.tsslStatus.Text = text
End If
End Sub
"hell, am using .net 2.0, and this example doesn't work"
It's a bugger when that happens! :laugh:
Private Delegate Sub MyDelegate(text As String)
Private Sub ShowProgress(text As String)
If InvokeRequired Then
BeginInvoke(New MyDelegate(AddressOf ShowProgress), text)
Else
tsslStatus.Text = text
End If
End Sub