QT中使用moveToThread让任务在子线程中进行

原理:

1、使用QThread生成一个线程对象

2、任务对象moveToThread

因为moveToThread是QObject类的函数,所以定义任务对象的类的时候,要让该类继承自QObject函数,继承其moveToThread函数。

3、QThread 生成的线程对象调用run函数,开启线程

4、使用信号和槽,连接任务对象的任务处理函数。注意,第二个函数的主体是任务处理对象

5、如何释放该线程资源,还不清楚。研究中

cpp 复制代码
myWav = new UseWav();                       //处理任务的对象
    QThread *thread = new QThread();            //创建一个线程对象

    myWav->moveToThread(thread);                //将人物对象添加到线程对象中

    thread->start();                            //线程启动

    qDebug() << "The adress of the server" << QThread::currentThread();

    connect(btn,&QPushButton::clicked,myWav,[=](){  //注意这里的信号接受者
        myWav->wavWorking("aplay 0.wav");       //任务处理函数
    });
相关推荐
过期的H2O218 分钟前
【H2O2|全栈】JS进阶知识(四)Ajax
开发语言·javascript·ajax
王俊山IT27 分钟前
C++学习笔记----10、模块、头文件及各种主题(二)---- 预处理指令
开发语言·c++·笔记·学习
Json____42 分钟前
python的安装环境Miniconda(Conda 命令管理依赖配置)
开发语言·python·conda·miniconda
CP-DD1 小时前
Qt的架构设计
qt
2401_858286111 小时前
C6.【C++ Cont】cout的格式输出
开发语言·c++
阿_旭1 小时前
基于YOLO11/v10/v8/v5深度学习的维修工具检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·qt·ai
海害嗨1 小时前
牛客网Java高频面试题(2024最新版含答案)
java·开发语言
今天我又学废了2 小时前
scala学习记录,Set,Map
开发语言·学习·scala
What_can_i_say jdk?2 小时前
初学Java基础Day22---枚举
java·开发语言