2016-07-02 21 views
0

Ich habe einen Hintergrund-Worker, der eine ToolStripLabel mit einigen Statusmeldungen aktualisieren soll. Die Aktualisierung findet jedoch nicht statt, es werden jedoch keine Fehler ausgegeben. Hier ist der Code Ich verwende:Vb.Net Hintergrund Worker Update UI funktioniert nicht

Private Sub BackgroundWorker3_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker3.DoWork 
     BackgroundWorker3.WorkerReportsProgress = True 
     Dim Counter As Integer = 0 

     Do Until BW1Running = False 
      Counter = Counter + 1 
      Threading.Thread.Sleep(1000) 
      Incident_Form.BackgroundWorker3.ReportProgress(Counter) 
      If Counter >= 100 Then 
       e.Result = False 
       Return 
      End If 

     Loop 

     If BW1Running = False Then 
      Counter = 100 
      Incident_Form.BackgroundWorker3.ReportProgress(Counter) 
     End If 
    End Sub 


Private Sub BackgroundWorker3_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BackgroundWorker3.ProgressChanged 

    Me.ToolStripStatusLabel1.Text = e.ProgressPercentage.ToString 

End Sub 

Nichts passiert, wenn die ProgressChanged abgefeuert wird. Ich habe es debuggt und es wird eine Zeile in das Ausgabefenster drucken, aber dieses Label wird nicht aktualisiert. Irgendwelche Ideen, was ich vermisse?

Antwort

1

Du nennst:

Incident_Form.BackgroundWorker3.ReportProgress() 

statt nur:

BackgroundWorker3.ReportProgress() 

Ihre BackgroundWorker3_ProgressChanged Methode zum ProgressChanged Ereignis abonniert ist der Background im aktuellen Form befindet, nicht in der Incident_Form Formular.

Entfernen Incident_Form von Anfang der BackgroundWorker3.ReportProgress() Anrufe und Sie sollten gut zu gehen.

+0

Danke :) Es sind die kleinen Dinge !!! (Warte 5 Minuten, bevor ich das als Antwort annehmen kann, ich komme zurück und akzeptiere!) – SilverShotBee

+0

@SilverShotBee: Kein Problem! Vielleicht sollten Sie Ihre BackgroundWorker benennen, damit Sie wissen, welche Sie verwenden? :) –

+0

Vielleicht sollte ich! Ich bin der Angewohnheit verfallen, einfach den Standardnamen dort zu belassen, was in Ordnung ist, während es frisch in deinem Kopf ist, aber nach ein paar Wochen kann es nervig sein, zu versuchen, zu trainieren! Ich bin jedoch ziemlich gut darin Kommentare während des gesamten Projekts zu hinterlassen! – SilverShotBee