【问题标题】:Have an UserControl modified by another thread that the main thread?主线程的另一个线程是否修改了 UserControl?
【发布时间】:2015-12-02 09:28:26
【问题描述】:

目前,我们有一个应用程序可以以高更新率(~100 毫秒)将大量数据显示到多个图表中。为了绘制图表,我们使用了一个库(Nevron)。

目前,图表是在主线程上创建的,我们在 ChartControl 上为我们的每个操作进行调用。

问题是现在,主线程正在最大程度地工作,因为它必须绘制很多不同的图表。

我的问题是:有没有办法在单独的线程中绘制每个图表?

是否可以在不同的线程中创建用户控件并将它们托管在相同的窗口中(由不同的父级拥有)?

【问题讨论】:

  • 您或许可以使用后台工作人员和报告进度事件来更新图表。
  • @Lidaranis 我已经有一个后台工作人员将新数据提供给图表,但耗时的操作是绘制图表。
  • 嗯,这完全取决于你的图书馆能做什么,不是吗?如果它们允许渲染到某些背面,您可以轻松地在多个线程中渲染。如果他们只允许呈现给用户控件,那么你就有麻烦了。拥有多个 UI 线程可能,但这很棘手(尤其是如果您希望在单个窗口中显示结果:)。

标签: c# multithreading winforms


【解决方案1】:

你可以在不同的线程中为不同的位图绘制帧,在主线程中只绘制这些位图

【讨论】:

  • 具体来说,如果我有一个子 UserControl,我该怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 2012-11-05
  • 1970-01-01
  • 2022-08-06
相关资源
最近更新 更多