【发布时间】:2010-10-11 14:09:46
【问题描述】:
好的,请忽略之前的内容。我不再收到错误,所以我的问题似乎是当我更改图表数据绑定的值时更新图表。
//这里忽略下面
大家好。我有一个 WinForms 应用程序,它有一个面板 panel1。后台线程创建一些其他控件,然后像这样添加到panel1
panel1.Controls.AddRange(myArrayOfControls);
这很好用,我可以看到我的控件被添加了。但是,当新数据进入另一个线程时,我会更新控件父对象中的值,然后需要 Refresh() 以使显示更新为新值。在任一上下文中调用Refresh(),数据进入的线程或接收更新数据的对象都会导致 InvalidOperation 异常,因为需要调用。我已经尝试在我的模型对象以及数据传入的线程中使用 Invoke 并且似乎无法消除错误。
如果有人能提供一些指导,我将不胜感激。
更新:这里有更多信息。我不认为它会需要它,但我错了。 :)
我有一个对象类 MyObject。这个 MyObject 类是在一个名为 topologyThread 的线程中创建的。数据来自 dataThread。 MyObject 的实例有一个 Panel 实例变量,并且 Panel 有子控件,包括来自 System.Windows.Forms.DataVisualization.Charting 命名空间的两个图表。因此,当数据进入 dataThread 时,我会更新 MyObject 对象中的相应数据值,然后需要刷新图表以显示更新后的数据。
我知道数据处理得很好。在我的 MyObject 类中,我将新值记录到属性设置器中的 Console 中,并看到新值显示出来。
【问题讨论】:
标签: c# .net multithreading controls