我有一个显示图表和进度条的表单。一些复杂的计算由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
仅包含两个属性:Iteration
和ObjectiveFunction
。
BackgroundWorker
目前,它没有给出任何错误,但在任务完全完成之前图表不会更新。当我将数据分配给图表时,我应该做一些不同的事情还是完全不同的事情?