当前位置: 代码迷 >> QT开发 >> Qt线程里,emit 信号后,sleep(10)的有关问题
  详细解决方案

Qt线程里,emit 信号后,sleep(10)的有关问题

热度:754   发布时间:2016-04-25 05:11:47.0
Qt线程里,emit 信号后,sleep(10)的问题
过程:
首先 线程的信号 跟 主线程的槽 是异步连接的。
我在一个继承自 QThread的线程的run函数里,emit 信号后,立即sleep(10) 10秒。

结果:
emit后,槽并没有立即执行,而是等到sleep 10秒后,才会执行。

无论如何改变sleep的值,槽都要在sleep后才能执行。

问题:
所以想不通是为什么,明明是异步的,信号发出后,主线程空闲就可以处理就可以了,可是为何要偏偏等从线程的sleep结束后才能执行呢,往指教,谢谢

------解决方案--------------------
探讨
问题:
所以想不通是为什么,明明是异步的,信号发出后,主线程空闲就可以处理就可以了,可是为何要偏偏等从线程的sleep结束后才能执行呢,往指教,谢谢

------解决方案--------------------
把wait去掉就可以了,想办法在其它地方delete线程,

另外建议你用postEvent,在线程中用connect效果不好
  相关解决方案