グラフと進行状況バーを表示するフォームがあります。BackgroundWorker
フォームの応答性を維持するために、いくつかの複雑な計算がコンポーネントによって実行されます。結果がリストに追加され、ReportProgress
メソッドが呼び出されて、ProgressChanged
イベント ハンドラーがプログレス バーを更新できるようになります (実際に実行されます)。
ProgressChaned
ただし、進行状況バーを正常に更新している同じイベント ハンドラーでチャートを更新するのに苦労しています。これは可能だと思いますか?の各反復後にチャートを更新したいと思いますBackgroundWorker
。BackgroundWorker
別のスレッドで作業を行っているため、チャートを直接更新することはできません。
グラフを更新しようとしているイベント ハンドラーのコードはProgressChanged
次のとおりです。
Me.ResultsChart.DataSource = myResultsList
With Me.ResultsChart.Series("Results")
.XValueMember = "Iteration"
.YValueMembers = "ObjectiveFunction"
End With
リストはmyResultsList
非常に単純です。と定義されていPrivate myResultsList As List(Of Results) = New List(Of Results)
ます。Results
クラスには と の 2 つのプロパティのみが含まIteration
れますObjectiveFunction
。
現在、エラーは発生していませんが、BackgroundWorker
タスクが完全に完了するまでグラフは更新されません。データをグラフに割り当てるとき、またはまったく別のことを行う必要がありますか?