WPF 3.5アプリケーションでBackGroundWorkerを使用して独自のスレッドで長期実行プロセスを実行し、VS2010でデバッグモードでコードを実行すると、DoWorkおよびRunWorkerCompletedイベントが起動していないようです。BackgroundWorkerイベントが起動しない
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
私はrunworkerasyncでセットアップブレークポイントを持っていると行が、エラーがcatchedされていないと呼ばれているが、サブが終了し、次のよう
私のコードです。私はDoWorkとRunWorkerCompletedサブメニューとWindow_Loadedサブメニューの後にもブレークポイントを設定していますが、デバッガで強調表示されるものは何もないので、イベントが発生していないと仮定しています。
2つの質問があります。私のコードからイベントが発生しないようにするために欠けているものがありますか?また、イベントのサブセットに正しいブレークポイントを設定していますか?
ご提供いただけるご支援をいただければ幸いです。
マット
素晴らしいですが、以前はC#のバージョンを見ていましたが、それはC#のことだった。これらの2行を追加すると、あなたのお手伝いをしていただきありがとうございます。 – Lima