[英]threaded serial port communication in C++ with Qt
我正在编写一个 QT 桌面应用程序,它将显示从串行端口接收到的信息。 因此,使用标准的 Windows API 功能创建了一个类并将其打包到 DLL 中,以便与连接的设备(CreateFile、ReadFile、WriteFile 等)进行通信。
目前,计时器以预定义的速率 [< 200 毫秒] 调用 DLL,这会导致 gui 冻结一小段时间。 因此,我正在考虑使用线程来执行串行端口的操作,这也将显示所有内容。
是更好地使用线程来解决这个问题还是我应该重写该类来执行基于工作事件的工作? 目标是,gui 不会冻结。
编辑:我使用 QThread 派生的工作类和一个被遮蔽的 run() 函数解决了这个问题,它在后台处理串行端口通信并在新信息可用时更新 gui。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.