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");       //任务处理函数
    });
相关推荐
gCode Teacher 格码致知几秒前
Javascript提高:get和post等请求,对于汉字和空格信息进行编码的原则-由Deepseek产生
开发语言·前端·javascript·node.js·jquery
黑眼圈子3 分钟前
总结一下用Java做算法的常用类和方法
java·开发语言·算法
码界筑梦坊14 分钟前
353-基于Python的大湾区气候数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·vue·毕业设计
GIS阵地1 小时前
QgsProviderMetadata 详解(基于 QGIS 3.40.13 API)
数据库·qt·arcgis·oracle·gis·开源软件·qgis
c++逐梦人1 小时前
C++11——— 包装器
开发语言·c++
zihao_tom1 小时前
Go环境搭建(vscode调试)
开发语言·vscode·golang
IT方大同1 小时前
(实时操作系统)线程管理
c语言·开发语言·嵌入式硬件
阿kun要赚马内2 小时前
Python面向对象:@property装饰器
开发语言·前端·python
sunwenjian8862 小时前
Java进阶--IO流
java·开发语言
wildlily84272 小时前
C++ Primer 第5版章节题 第十三章(二)
开发语言·c++