0

我正在开发一个 WPF 应用程序,它将读取串行端口上的数据,解析它并将其显示在 UI 上。

我必须使用串行端口 Buad rate - 115200,数据位 - 8,停止位 - 1。

我在串行端口上每秒发送 10000 个字节,这将由我的 WPF 应用程序读取。

但是,在这里我遇到了 UI 问题。当我开始读取 COM 端口时,我的 UI 冻结了。它不允许任何人做任何事情。根据我的调查,这是由于数据的高速。

  1. 我正在阅读不同线程上的 com 端口,并且 UI 正在不同线程上运行。
  2. 线程之间的数据传输是使用公共循环缓冲区完成的。
  3. 我确实使用 BeginInvoke 方法来更新 UI 字段,以便函数立即返回。
  4. 在访问两个线程中的循环缓冲区时,我确实使用了锁定机制。

有没有办法处理这种情况?我读过很多人面临同样的问题。可以解决此类问题的解决方案是什么。

谢谢, 维沙尔 N

4

1 回答 1

0

听起来您要么Thread错误地设置了对象,要么过于频繁地将反馈传递回 UI。

如果您Thread不习惯直接使用对象,那么该BackgroundWorker课程可能会对您有所帮助。查看 MSDN 上的BackgroundWorker 类页面。

于 2013-08-05T11:30:47.200 回答