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");       //任务处理函数
    });
相关推荐
weixin_428005305 分钟前
C#调用 AI学习从0开始-第1阶段(基础与工具)-第4天CoT思维链学习
开发语言·学习·ai·c#·cot
砍材农夫6 分钟前
物联网 基于netty构建mqtt服务demo演示
开发语言·物联网·php
JAVA面经实录9179 分钟前
Java 并发工具类
java·大数据·开发语言
吃好睡好便好10 分钟前
在Matlab中绘制变半径柱面图
开发语言·人工智能·学习·算法·matlab
驭渊的小故事10 分钟前
Java数据结构集合框架(顺序表(ArrayList)的详细解析)(两千字详细解析)
java·开发语言
hanbr10 分钟前
Qt:事件处理与绘图详解
开发语言·数据库·qt
cen__y15 分钟前
Linux知识点复习总结(2)
linux·运维·服务器·c语言·开发语言
方便面不加香菜16 分钟前
C++ 日期类的实现
开发语言·c++
雁迟19 分钟前
第五章:条件判断与分支语句
开发语言·r语言
geovindu24 分钟前
go: Monitor Pattern
开发语言·后端·设计模式·golang·监控模式