问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...run方法创建线程与通过movetothread方法有什么区别

发布网友 发布时间:2024-10-03 19:06

我来回答

1个回答

热心网友 时间:2024-10-06 23:52

在Qt中使用多线程,目前就我使用过的有两种,一是子类化QThread,重写run函数,在run函数里实现自己的代码,这一部分代码通常是比较耗时,或者干脆直接阻塞的。比如一个while循环,设置一个标志,判断循环结束。
这样的例子在网上有很多,就不写了。

这样写的话,会有一些东西需要了解。
子类化QThread的方法,只有run函数里面的内容是执行在子线程里的,其他的部分,比如槽函数什么的还是在主线程里执行(假设是在主线程开启的该子线程)。

还有一种方法,是子类化QObject,新建一个线程,然后使用MoveToThread把这个类的对象移到新建的线程中,这种做法使得它所有的槽函数都是执行在新开辟的线程里面。

如果直接(QObject对象).abc()的话,这个成员函数是在主进程内执行,可能会出现"QObject::killTimer: timers
cannot be stopped from another thread"的运行错误。

使用第二种方法的话,貌似会遇到这样的问题:如果在一个槽函数中把子线程阻塞,其他的槽函数无法接受来自主线程
额信号。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? Qt多线程的三种方法QtConcurrent::run()+QThreadPool Qt 的4种多线程实现详解 苹果手机我不想要密码,怎么删掉 ...地板是白色的 墙面也是白色 请问影视墙应该弄什么颜色啊_百度... 客厅地板浅棕色,墙面白色,门白色,那么沙发、电视背景墙、茶几用什么颜色... ...4月11兑换码是什么-2022年4月11日礼包兑换码领取 创造与魔法11月4日兑换码是什么-2022年11月4日礼包兑换码领取 关于美图秀秀的一些问题,急用!! 怀孕恶心反胃吃什么食物可以缓解? 素描入门用什么画笔 二本哪些大学开有电子商务专业 有什么好的办法缓解妊娠期呕吐? 二本的电子商务专业学校 妊娠反应呕吐厉害有什么解决方法 一、二本的电子商务专业好点的大学 最好在南方的 有哪些 环境要好点... 会拉丝的花生蔓越莓牛扎饼做法大全 把一个棱长为5厘米的正方体的上下底面正中打一个对穿孔,这个对穿孔是... 在棱长为5厘米的正方体上下左右前后的正中位置打穿,它的体积是多少?面... 苏打棉花糖夹心饼干做法大全 ...左、右的正中位置各挖去一个棱长为2厘米的正方体, Qt多线程1:QThread Qt——QThread源码浅析 美的热水器怎么省电设置 丰田2700多少马力 数控车床已知圆弧两点求半径,公式不知道了,初来学数控不会。_百度知... 车外圆r怎样计算 数控车床中给你个加工件如何计算出圆弧半径 抖音新号怎样养号 微信没有绑定手机号会对以后有什么影响吗? 我老婆是中介,不知道怎么地,老是有人骚扰她,而且有次我接的电话,对方骂... 速龙X3445445开核 高手进!关于CPU速龙II X3 445开核与关核的教程``本人小白。所以最好有... 打糍粑需要掌握的技巧有些什么? 我的佳能S5is相机匹配EX430二代出现问题会有哪些? 微信企业怎么修改客服名称 pro14和pro15买哪个好 pro14和pro15区别 pro14与pro15 macbookpro15还是14哪个好 macbook pro14和15哪个更好