
QSerialPort的多线程实现方法
5星
- 浏览量: 0
- 大小:None
- 文件类型:7Z
简介:
本文探讨了如何在Qt框架下使用QSerialPort进行串口通信时实现多线程技术,以提高程序响应速度和执行效率。
在使用Qt的过程中,我已经尝试过通过继承QThread并重写run函数以及让QObject对象移动到新线程来实现多线程编程。然而,在处理QSerialPort的时候遇到了一些问题。
主要问题是:
1. 当在主线程中创建了QSerialPort对象,并且试图从子线程调用它,或者相反地在子线程中创建了一个QSerialPort然后尝试从主线程访问这个对象时,会出现错误信息:“无法为不同线程中的父类创建子项”和“定时器不能从另一个线程启动”。
2. 对于通过继承QThread并重写run函数的方法而言,在run方法之外定义一个QSerialport *port = new QSerialPort()的实例,并在run中调用类似port->readAll()这样的操作,这会导致跨线程访问。因为根据Qt的设计理念,只有在run方法内部的操作才是在新创建的子线程上执行的,而上述做法会在主线程和子线程之间产生错误。
以上就是我在使用QSerialPort时遇到的问题总结。
全部评论 (0)
还没有任何评论哟~


