Qt中使用线程之QRunnable

devtools/2024/10/24 5:44:24/

1、自定义1个子类继承自QRunnable

2、重写run方法,编写子线程的业务逻辑

3、使用QThreadPool的全局方法来开启这个线程

4、线程的回收不需要关注,由QThreadPool处理

5、缺点:无法使用信号槽机制

6、适合一些不需要和主线程通信的耗时的任务

举例:

窗口创建时开启1个耗时任务,打印ui线程和任务线程的id,任务线程被销毁时,打印日志

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QRunnable>
#include<QThread>
#include<QThreadPool>//继承自QRunnable
class MyThread:public QRunnable
{
public:MyThread()=default;~MyThread(){qDebug()<<"我被销毁了";}//提供退出方法void Stop(){stop=true;}protected://重写run方法void run() override{qDebug()<<"子线程id:"<<QThread::currentThreadId();int num=0;while(!stop){//num自增,然后循环打印qDebug()<<num++;QThread::msleep(1000);}}
private:bool stop=false;};class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr) : QWidget(parent){qDebug()<<"UI线程iD:"<<QThread::currentThreadId();//创建任务th=new MyThread;//使用QThreadPool的全局实例来启动任务QThreadPool::globalInstance()->start(th);//子线程的释放不需要我们来管了}~Widget(){//窗口销毁时,停止掉子线程的耗时任务th->Stop();};
private:MyThread* th;
};
#endif // WIDGET_H


http://www.ppmy.cn/devtools/128376.html

相关文章

C#中的LINQ之美:优雅的数据查询与操作

LINQ&#xff08;Language Integrated Query&#xff0c;语言集成查询&#xff09;是C#中一个强大的工具&#xff0c;它将查询功能直接融入到语言中&#xff0c;使开发者能够以一种更直观、更接近自然语言的方式来操作数据。LINQ不仅能极大地提高开发效率&#xff0c;而且让代码…

欧盟 RED 网络安全法规 EN 18031

目录 1. &#x1f4c2; EN 18031 1.1 背景 1.2 专业术语 1.3 覆盖产品范围 1.4 EN 18031标准主要评估内容&#xff1a; 1.5 EN 18031标准主要评估项目&#xff1a; 1.6 EN 18031 与 ETSI EN 303 645 的主要差异 1.7 RED 网络安全法规解读研讨会 2. &#x1f531; EN 1…

安全见闻(7)——开阔眼界,不做井底之蛙

内容预览 ≧∀≦ゞ 安全见闻七&#xff1a;洞悉硬件设备的安全风险声明导语硬件设备的安全问题物理安全问题设备被盗或损坏环境因素电磁干扰 供应链安全问题假冒伪劣产品恶意软件植入供应链中断 设备漏洞问题操作系统漏洞固件漏洞硬件设计漏洞 网络连接问题网络攻击无线连接安全…

Windows系统PyCharm右键运行.sh文件

在参考了Windows系统下pycharm运行.sh文件&#xff0c;执行shell命令_shell在pycharm-CSDN博客 和深度学习&#xff1a;PyCharm中运行Bash脚本_pycharm bash-CSDN博客 配置了右键执行.sh文件之后&#xff0c;发现在Windows的PyCharm中直接右键运行sh文件&#xff0c;存在如下…

LeetCode 110. 平衡二叉树

给定一个二叉树&#xff0c;判断它是否是平衡二叉树。 二叉平衡树的左右子树高度相差不超过1&#xff0c;且左右子树均是二叉平衡树二叉平衡树是所有结点的左右子树高度差均不超过1的二叉树 主要考对二叉平衡树的概念 # Definition for a binary tree node. # class TreeNod…

STMicroelectronics 意法半导体芯片选型表

意法半导体作为全球知名的半导体厂商&#xff0c;其产品广泛应用于各个领域&#xff0c;从消费电子到工业控制&#xff0c;从汽车电子到通信设备&#xff0c;都能看到意法半导体芯片的身影。在电子硬件设计领域&#xff0c;芯片的选型至关重要。亿配芯城&#xff08;ICgoodFind…

2024软考网络工程师笔记 - 第8章.网络安全

文章目录 网络安全基础1️⃣网络安全威胁类型2️⃣网络攻击类型3️⃣安全目标与技术 &#x1f551;现代加密技术1️⃣私钥密码/对称密码体制2️⃣对称加密算法总结3️⃣公钥密码/非对称密码4️⃣混合密码5️⃣国产加密算法 - SM 系列6️⃣认证7️⃣基于公钥的认证 &#x1f552…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十五集:制作更多地图,更多敌人,更多可交互对象

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、第一个代表性场景 1.制作更多敌人2.制作更多可交互对象二、第二个代表性场景 1.制作更多敌人2.制作更多可交互对象三、第三个代表性场景 1.制作更多敌人2.制…