gpt4 book ai didi

vb.net - 使用BackgroundWorker ProgressChanged 事件更新图表?

转载 作者:行者123 更新时间:2023-12-02 09:45:20 32 4
gpt4 key购买 nike

我有一个显示图表和进度条的表单。一些复杂的计算由 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 类仅包含两个属性:IterationObjectiveFunction

目前,它不会给出任何错误,但图表不会更新,直到 BackgroundWorker 任务完全完成。当我将数据分配给图表时,我应该做一些不同的事情还是完全不同的事情?

最佳答案

我已经对此进行了排序,基本上后台工作人员的迭代速度比图表更新的速度快。因此,我现在正在清除图表并每次在单独的线程上读取整个结果列表。一旦后台工作程序中的完整逻辑建立起来,问题可能会“ self 修复”,因为迭代将花费更长的时间,但目前这是可行的。

关于vb.net - 使用BackgroundWorker ProgressChanged 事件更新图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12860810/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com