2011-03-12 2 views
0

звонит следующий код из BackgroundWorker, но вместо того, чтобы нужный текст, это добавить заголовок приложения к lisbox , что случилось с нимSafe кросса нити

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 

ответ

2

Вы подобрать форму-х Text свойство при вызове делегата (...New Object() {[Text]} ...). Вы хотите отправить аргумент sStatus вместо этого:

If Me.lsbLog.InvokeRequired Then 
    Dim d As New SetTextCallback(AddressOf SetStatus) 
    Me.lsbLog.Invoke(d, New Object() {sStatus}) 
    ''# ...and so on 
Смежные вопросы