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

Qt如何进行创建多线程

发布网友 发布时间:2022-04-23 15:03

我来回答

1个回答

热心网友 时间:2023-05-06 05:58

在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
windows8怎么本地连接 windows8如何设置网络 诸葛亮故里诸葛亮故里纪念馆 临沂诸葛亮文化旅游节历届介绍 第四届诸葛亮文化旅游节纪念诞辰 ...请根据该表回答下面问题: (1)表中A、B、C分 ...请你分析样品A、B、C中代表血浆、原尿和尿液的样品分别是... c糖蛋白化验 江诗丹顿金属手表(江诗丹顿的手表女款) 定位最好的手表? 表带上的圈叫什么 蛋白和蛋白质的区别是什么? 如何建立一个工作线程,实现这样的功能(一个 蛋白和蛋白质有区别吗? c语言中怎样创建多线程? 蛋白是什么 什么是蛋白 mfc创建线程的三种方法 快手一直不涨粉丝怎么办? ...绑定我的手机号买的东西没有了购物车也空了花呗也没有了怎么... 求问,微信怎样才能涨粉 微信公众号如何去运营才能达到增加曝光的效果的呢 新浪微博小号怎么帮大号涨粉 电脑企业微信输入法用不了 联想笔记本登录微信账号点密码没有输入法是怎么回事? 微信键盘上的微脉输入法怎么不见了? 如何恢复微信的输入法 什么是云计算,有嘛作用? 云计算有什么特性? 如何理解云服务器在时间和空间这两个维度上实现的按需部署?_百度问一问 移动大王卡注销? 蛋白 是什么意思? 如何使用 Visual C#创建线程 Java多线程之如何创建多线程 蛋白质的种类有哪几种? mfc中如何创建线程 vb.net 怎么新建线程 蛋白和蛋白质有区别吗?哪个好? MFC多线程主线程和新建线程执行关系 在一个线程中可以在创建线程或进程吗 蛋白质是什么东西啊 linux下main()中新建一个线程,延时问题? c语言中怎样创建多线程。最好有一个例子,谢谢!! thread new thread 怎么创建很多线程 蛋白质是什么? 蛋白质是如何进行分类的,各类蛋白质之间有和区别 含铁量高的9款食物有哪些? 含铁高的食物有哪些? 富含铁的食物有哪些?肉类含铁多吗? 富含铁的食物有哪些 富含铁的食物都有哪些?更适合哪类人群食用?