首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt的两个线程施行速度受影响

2012-10-13 
Qt的两个线程执行速度受影响!大家好,我有两个线程,一个主线程,用来显示界面,另一个是收发串口的数据。在主

Qt的两个线程执行速度受影响!
大家好,我有两个线程,一个主线程,用来显示界面,另一个是收发串口的数据。
在主线程上有个QTextEdit控件,用来把收发到的串口数据实时的显示到QTextEdit界面上。

现在的情况是:

当我把收发线程打开的时候,主线程上QTextEdit上的数据就显示的特别慢。
当收发线程关闭的时候, QTextEdit上的数据就显示的特别的快。

请问下是怎么回事,谢谢!

我的平台是S3C6410, 为了测试,我收发线程使用这样的
while(1)
{
sleep(1);
} 我这样做就等于把收发线程处于睡眠状态,可是这样还是会导致主线程很慢,请教下为什么,谢谢!

[解决办法]
刚刚碰到过这个问题已经解决了。。。
在发送外面加个循环就会提速。。。串口数据进来的速度还是很快的,主要是在显示上面一个一个输出的话自然快不了。。。
另外如果用的是第三方库的话也可以调用readAll,一次能全读出来,然后一次全部输出,这样更快,不过数据量的话要查查数据是否准确。。。
[解决办法]
qextserialport不是串口通讯的第三方类库吗?里面是有readyRead信号的呀,不管是串口还是网口还是别的什么,它总会是一个QIODevice,检测是否有数据过来是他们的基本共性。

另外,你为啥一定要“1ms或100us发一次”??不要忘记,你发送的目的地是UI!这已经超出了人类的反应速度,这么频繁的发送除了浪费CPU时间外,没有别的用处。你就不会攒赞再发吗?

热点排行