• 6172阅读
  • 9回复

[提问]QT 槽函数 单or多线程处理 疑问? [复制链接]

上一主题 下一主题
离线ff007bit
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-28
关键词: 线程槽函数
我想问下:
QT的槽函数是多线程的还是单线程的?
比如,同时发送两个信号,槽函数是并行处理两个,还是串行处理?


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

离线firstcong

只看该作者 1楼 发表于: 2011-12-28
更新界面内容,肯定是占用主线程的时间的,否则运行时就会报错啦
菜鸟也有翱翔的一天~~~
离线ff007bit
只看该作者 2楼 发表于: 2011-12-28
回 1楼(firstcong) 的帖子
槽函数是串行处理还是并行呢?
我做了个实验室,用
QMessageBox box;
box.exec;
然后同时发两个信号
结果一下弹出两个box (exec没有阻塞槽函数处理)
离线ff007bit
只看该作者 3楼 发表于: 2011-12-28
我认为是并行,如果是,我在槽函数中修改MainFrm中的控件,不就不占用主线程时间了?
或者是说可以在主线程之外修改该控件了吗?
离线ff007bit
只看该作者 4楼 发表于: 2011-12-29
路过的大神帮帮忙啊~
离线dbzhang800

只看该作者 5楼 发表于: 2011-12-29
Re:回 1楼(firstcong) 的帖子
引用第2楼ff007bit于2011-12-28 17:29发表的 回 1楼(firstcong) 的帖子 :
槽函数是串行处理还是并行呢?
我做了个实验室,用
QMessageBox box;
box.exec;
然后同时发两个信号
.......

这并不能说明是并行处理的。这是事件循环的嵌套。http://blog.csdn.net/dbzhang800/article/details/6889291
离线ff007bit
只看该作者 6楼 发表于: 2011-12-31
谢谢,我看看博客..
那楼上的观点是串行还是并行的?
离线ff007bit
只看该作者 7楼 发表于: 2012-01-05
exec的事件循环是嵌套,槽函数本身也不能证明它是并行执行的吗?
离线ff007bit
只看该作者 8楼 发表于: 2012-01-05
槽函数的执行毕竟阻塞在exec处了啊, 一个槽函数还没有执行完,第二个就已经开始运行了.
这不是并行吗?

exec的事件循环不能是并行的,但可以嵌套.这个槽函数本身呢?
离线ff007bit
只看该作者 9楼 发表于: 2012-01-11
自己顶一下~
快速回复
限100 字节
 
上一个 下一个