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");       //任务处理函数
    });
相关推荐
郭源潮12 分钟前
《Muduo网络库:实现one loop per thread设计模式》
开发语言·c++·网络库
linksinke14 分钟前
html案例:制作一个图片水印生成器,防止复印件被滥用
开发语言·前端·程序人生·html
^_^ 纵歌20 分钟前
rust主要用于哪些领域
开发语言·后端·rust
_OP_CHEN30 分钟前
C++基础:(十三)list类的模拟实现
开发语言·c++·反向迭代器·stl·list·list模拟实现·vector和list对比
froginwe1132 分钟前
R Excel 文件:高效数据处理与可视化分析利器
开发语言
练习时长一年1 小时前
@Scope失效问题
java·开发语言
淘晶驰AK1 小时前
主流的 MCU 开发语言为什么是 C 而不是 C++?
c语言·开发语言·单片机
流星白龙3 小时前
【Qt】1.安装QT
开发语言·qt
励志不掉头发的内向程序员3 小时前
【Linux系列】解码 Linux 内存地图:从虚拟到物理的寻宝之旅
linux·运维·服务器·开发语言·学习
superxxd5 小时前
跨平台音频IO处理库libsoundio实践
开发语言·qt·音视频