从另一个线程

时间:2015-08-04 05:22:15

标签: c# .net multithreading

目前,我有一组来自线程捕获的传感器的值。我想将这些值绘制到图表中,实时",比如说每1秒。

所以我通常做的就是这个(在非线程版本中):

1)将数据导入List

2)点击按钮运行myChart.Refresh()

3)触发OnPaint()绘制图形。

然而,我意识到我无法在一个线程中触发OnPaint()。我也知道有一个BackgroundWorker类,但我不知道如何用它来触发OnPaint()方法。

1 个答案:

答案 0 :(得分:0)

OnPaint()只能在主UI线程上调用,因为它需要绘制图形并更新UI。您可以使用Dispatcher Class从任何线程进行交互并执行UI操作。 请参阅此link以了解有关调度员的更多信息。