【问题标题】:Multithreading - Add point to series in VB多线程 - 在 VB 中添加点到系列
【发布时间】:2016-03-19 14:20:02
【问题描述】:

美好的一天

一个图表有一组 3 个系列添加到表单中:

(chrtReadTimePlot is private)
chrtRealTimePlot.Series.Add(SerRT_B_Voltage)
chrtRealTimePlot.Series.Add(SerRT_Charge_Current)
chrtRealTimePlot.Series.Add(SerRT_P_Voltage)

每个系列都有其get set 方法

问题:每个系列都有基于 Threading.Timer.Tick() 添加的数据点:

SerRT_B_Voltage.Points.AddXY(MPPTdata(x1,y1)
SerRT_Charge_Current.Points.AddXY(x2,y2)
SerRT_P_Voltage.Points.AddXY(MPPTdata(x3,y)

将点添加到这些系列之一时,我收到了跨线程错误。

错误:

“System.InvalidOperationException”类型的未处理异常 发生在 System.Windows.Forms.dll 中

附加信息:跨线程操作无效:控制 'chrtRealTimePlot' 从线程之外的线程访问 创建于。

我看不出在这种情况下如何使用调用

任何想法/建议都会有很大帮助!

【问题讨论】:

    标签: c# vb.net multithreading charts series


    【解决方案1】:

    不能评论,因为我没有足够的评价...

    您必须使用委托才能从另一个线程安全地更新 GUI。阅读:http://tech.xster.net/tips/invoke-ui-changes-across-threads-on-vb-net/

    当我遇到同样的问题时,这篇文章对我很有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 1970-01-01
      • 2012-05-24
      相关资源
      最近更新 更多