Vb.net 安全跨线程调用错误

Vb.net 安全跨线程调用错误,vb.net,multithreading,Vb.net,Multithreading,我从backgroundworker调用以下代码,但它没有设置所需的文本,而是将应用程序标题添加到lisbox 怎么了 Private Sub SetStatus(ByVal sStatus As String) If Me.lsbLog.InvokeRequired Then Dim d As New SetTextCallback(AddressOf SetStatus) Me.lsbLog.Invoke(d, New Obj

我从backgroundworker调用以下代码,但它没有设置所需的文本,而是将应用程序标题添加到lisbox 怎么了

 Private Sub SetStatus(ByVal sStatus As String)
        If Me.lsbLog.InvokeRequired Then
            Dim d As New SetTextCallback(AddressOf SetStatus)
            Me.lsbLog.Invoke(d, New Object() {[Text]})
            '// Me.Invoke(Sub() SetStatus(sStatus))
        Else
            If Mid$(LCase$(sStatus), 1, 4) = "sent" Then
                tslSent.Text = "Sent:" & FormatNumber(lSent, 0, TriState.False)
            Else
                lsbLog.Items.Add(sStatus)
            End If
        End If

    End Sub

调用委托(
…New Object(){[Text]}…
)时,您会选择表单的
Text
属性。您希望改为在委托调用中发送
sStatus
参数:

If Me.lsbLog.InvokeRequired Then
    Dim d As New SetTextCallback(AddressOf SetStatus)
    Me.lsbLog.Invoke(d, New Object() {sStatus})
    ''# ...and so on