Vb.net 安全跨线程调用错误
我从backgroundworker调用以下代码,但它没有设置所需的文本,而是将应用程序标题添加到lisbox 怎么了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
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