Arbeiten mit BackGroundWorker in meiner WPF 3.5-Anwendung einen langen laufenden Prozess auf einem eigenen Thread ausführen und wenn ich den Code im Debug-Modus in VS2010 ausführen, scheinen die DoWork und RunWorkerCompleted Ereignisse nicht ausgelöst werden .BackgroundWorker Ereignis nicht feuern
Mein Code ist wie folgt:
Implements INotifyPropertyChanged
Private WithEvents worker As System.ComponentModel.BackgroundWorker
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Private Sub NotifyPropertyChanged(ByVal info As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
End Sub
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
Dim worker = New System.ComponentModel.BackgroundWorker
worker.WorkerReportsProgress = True
worker.WorkerSupportsCancellation = True
Dim str() = New String() {"IDA00005.dat", "Adelaide"}
Try
worker.RunWorkerAsync(str)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub worker_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles worker.DoWork
Dim form_Helpder As New test_global
Dim ds As DataSet = form_Helpder.getWeatherData(e.Argument(0), e.Argument(1))
e.Result = ds
End Sub
Private Sub worker_Completed(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs) Handles worker.RunWorkerCompleted
If e.Error IsNot Nothing Then
MsgBox(e.Error.Message)
Else
...
NotifyPropertyChanged("lbl_minToday")
...
End If
End Sub
Ich habe Setup-Haltepunkte an RunWorkerAsync und die Linie genannt wird, sind Fehler nicht abgefangen, sondern die Unter beendet. Ich habe Breakpoints auch auf dem DoWork und RunWorkerCompleted Sub und nach dem Window_Loaded Sub-Enden eingerichtet, nichts anderes wird vom Debugger markiert, so dass ich nur davon ausgehe, dass die Events nicht ausgelöst werden.
Ich habe zwei Fragen, gibt es etwas fehlt in meinem Code, die die Ereignisse nicht auslösen würde, und ist die Verwendung von Breakpoints auf Event Subs die richtige Art des Debuggens?
Jede Hilfe, die zur Verfügung gestellt werden kann, wird sehr geschätzt.
Matt
Großartig, ich hatte die C# -Version zuvor gesehen, aber ich konnte es nicht zur Arbeit so nur gemustert bekommen dass es eine C# Sache war. Das Hinzufügen dieser zwei Zeilen funktionierte, vielen Dank für Ihre Unterstützung. – Lima