主题最新回顾(发布时间:2024-1-10 17:24:00) |
---|
-- 作者:hzc
-- 你好,我看代码中有互斥锁,可以检查一下是不是负责刷新界面显示的线程中也加了锁,所以在接收线程中互斥锁没有unlock之前,界面显示的线程就无法执行,导致表现起来就很卡。 |
主题最新回顾(发布时间:2024-1-10 16:22:00) |
---|
-- 作者:宫梓萱
-- 你好,我贴下我测试的代码。我使用了usleep后更卡了。我认为运行了usleep后串口接收线程就休眠了,此时QT的GUI线程能顺利运行啊。但的确是更卡了。如下是串口线程代码。 |
主题最新回顾(发布时间:2024-1-5 15:53:00) |
---|
-- 作者:hzc
-- 你好,可以检查一下接收线程的操作,在每次接收循环之间增加一点延时。如果接收线程在接收大量数据的时候,是类似死循环一样的操作,就会将CPU的资源占完,导致无法正常切换到其他线程的时间片,这样就会导致其他线程表现出卡顿的现象。 |
主题最新回顾(发布时间:2024-1-5 14:48:00) |
---|
-- 作者:宫梓萱
-- ESM6800在QT程序里使用串口接收数据时GUI线程会卡住 使用linux的方式单独开了一个串口发送接收线程。QT的动画来提示数据接收状态。接收少量数据时还好。在115200bps下接收20多KB数据时发生QT动画卡住,接收完成才正常。我想我单独开了一个线程啊,串口线程和QT的GUI线程是互不干扰的。实际测试发现,GUI线程下的定时器也不能用,只有等数据接收完成才可以。这是开了一个假线程吗。这个串口线程是参照例程的。 |