找回密码
 立即注册
收起左侧

关于线程使用的一点疑问

5
回复
7989
查看
[复制链接]
累计签到:461 天
连续签到:1 天
来源: 2015-3-12 12:04:13 显示全部楼层 |阅读模式
5Qter豆
各位大大好
我在主线程创建了一个对象 ThreadWorker,然后再创建一个子线程 subThread,
通过 ThreadWorker->movetothread(subThread) 把对象移到子线程去。
现在疑问是,为何我还能在主线程使用ThreadWorker的方法,难道可以调用不同线程之间的方法
求各位帮忙解答

最佳答案

查看完整内容

刚查了一下资料,这个movetothread是这样工作的: 原来的object仍然属于创建的线程,包括其所有方法和属性,movetothread后,这个object的槽函数会在另一个线程执行,当然这个槽函数依旧属于主线程的东西,只是不归主线程计算罢了。
回复

使用道具 举报

尚未签到

2015-3-12 12:04:14 显示全部楼层
爱德华小遥 发表于 2015-3-13 09:50
好的  明白  谢谢哈(= =限制30个字符是要闹哪样)

刚查了一下资料,这个movetothread是这样工作的:

原来的object仍然属于创建的线程,包括其所有方法和属性,movetothread后,这个object的槽函数会在另一个线程执行,当然这个槽函数依旧属于主线程的东西,只是不归主线程计算罢了。
回复

使用道具 举报

尚未签到

2015-3-12 17:53:36 显示全部楼层
QThread::currentThreadId      用这个输出看看是在哪个线程执行

点评

我调试发现 ThreadWorker在movetothread执行后 currentThread是子线程,moveto之前是在主线程  详情 回复 发表于 2015-3-13 09:09
回复

使用道具 举报

累计签到:461 天
连续签到:1 天
2015-3-13 09:09:58 显示全部楼层
Joey_Chan 发表于 2015-3-12 17:53
QThread::currentThreadId      用这个输出看看是在哪个线程执行

我调试发现   ThreadWorker在movetothread执行后   currentThread是子线程,moveto之前是在主线程
回复

使用道具 举报

尚未签到

2015-3-13 09:39:39 显示全部楼层
爱德华小遥 发表于 2015-3-13 09:09
我调试发现   ThreadWorker在movetothread执行后   currentThread是子线程,moveto之前是在主线程 ...

在子线程就好了嘛,不影响你的逻辑过程就好

点评

好的 明白 谢谢哈(= =限制30个字符是要闹哪样)  详情 回复 发表于 2015-3-13 09:50
回复

使用道具 举报

累计签到:461 天
连续签到:1 天
2015-3-13 09:50:19 显示全部楼层
Joey_Chan 发表于 2015-3-13 09:39
在子线程就好了嘛,不影响你的逻辑过程就好

好的  明白  谢谢哈(= =限制30个字符是要闹哪样)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了