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

QT 槽函数 单or多线程处理 疑问?解决思路

2012-02-08 
QT 槽函数 单or多线程处理 疑问?我想问下:QT的槽函数是多线程的还是单线程的?比如,同时发送两个信号,槽函

QT 槽函数 单or多线程处理 疑问?
我想问下:
QT的槽函数是多线程的还是单线程的?
比如,同时发送两个信号,槽函数是并行处理两个,还是串行处理?


另外:都说只有在主线程中能修改控件,比如(ListWidget)
如果我在MaiFrm中写一个槽函数,内容是修改ListWidget中的内容.
这时,通过额外起线程,往MainFrm的槽函数发送信号,这样也能修改内容,
但这样算是在主线程中修改吗?

[解决办法]

探讨

我做了个实验室,用
QMessageBox box;
box.exec;
然后同时发两个信号
结果一下弹出两个box (exec没有阻塞槽函数处理)

[解决办法]
“QT的槽函数是多线程的还是单线程的?”

如果是UI相关的,那必然是在主线程中被顺序执行。

但关于这个问题,我想做一些补充。

Qt的信号是可以跨线程投递的,槽函数在哪个线程被执行,这取决于信号和槽的连接方式。看一下connect的参数便可知道。

因此一个非UI的槽函数,完全可以在两个次线程中被并行执行。

楼主需要记住一句话,“事件循环必然是串行的,但可以有多个事件循环在并行工作”这就是Qt,呵呵。

热点排行