我正在开发一个 WPF 应用程序,它将读取串行端口上的数据,解析它并将其显示在 UI 上。
我必须使用串行端口 Buad rate - 115200,数据位 - 8,停止位 - 1。
我在串行端口上每秒发送 10000 个字节,这将由我的 WPF 应用程序读取。
但是,在这里我遇到了 UI 问题。当我开始读取 COM 端口时,我的 UI 冻结了。它不允许任何人做任何事情。根据我的调查,这是由于数据的高速。
- 我正在阅读不同线程上的 com 端口,并且 UI 正在不同线程上运行。
- 线程之间的数据传输是使用公共循环缓冲区完成的。
- 我确实使用 BeginInvoke 方法来更新 UI 字段,以便函数立即返回。
- 在访问两个线程中的循环缓冲区时,我确实使用了锁定机制。
有没有办法处理这种情况?我读过很多人面临同样的问题。可以解决此类问题的解决方案是什么。
谢谢, 维沙尔 N