读书人

Qt线程里emit 信号后sleep(10)的

发布时间: 2012-01-28 22:06:13 作者: rapoo

Qt线程里,emit 信号后,sleep(10)的问题
过程:
首先 线程的信号 跟 主线程的槽 是异步连接的。
我在一个继承自 QThread的线程的run函数里,emit 信号后,立即sleep(10) 10秒。

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

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

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

[解决办法]

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

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

另外建议你用postEvent,在线程中用connect效果不好

读书人网 >QT开发

热点推荐