使用 c# 图表控件处理数据

本文关键字:处理 数据 控件 使用 | 更新日期: 2023-09-27 18:35:26

我有一个简短的问题要问大家。这是我第一次处理串行I/O,想知道最有效的方法是什么。我正在通过rs-232从激光读取。

从我从研究中可以看出,我可以通过使用后台工作线程从串行端口创建缓冲区来实现这一点,然后让主线程访问该缓冲区来绘制和分析点。有没有更有效/更可靠的方法来做到这一点,或者这种方法将是我最好的选择?

谢谢!

使用 c# 图表控件处理数据

从设备读取的方式取决于从设备中检索数据的方式。我有一个应用程序,可以从应变片(连接到仪表)获取数据。这个仪表会自动吐出读数,所以我不必轮询它。因此,我只需使用 SerialPort 的 DataReceived 事件并将数据添加到数组中。

我使用位于 UI 线程

上的Microsoft图表控件(内置于 .NET 4.0 中),因此必须从 UI 线程更新它。数据来得非常快(~每秒 100 点),所以我所做的是构建一个 100 点数组,并在启动新数组时将该数组连接到 UI 线程。这样,UI 会定期更新(~每秒更新 1 次)。

另一方面,如果您的设备需要轮询(您必须每次都要求它提供数据),那么您将需要位于紧密循环轮询中的专用线程。