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");       //任务处理函数
    });
相关推荐
BUG研究员_18 小时前
Runnable与LCEL
开发语言·人工智能·python
牛艺翔20 小时前
C++基础
开发语言·c++
键盘会跳舞20 小时前
C++ :容器适配器stack源码级拆解
开发语言·c++··stack·先进后出
美味蛋炒饭.20 小时前
Git 版本控制(下)
开发语言·git·学习·总结·后端开发
我星期八休息21 小时前
网络编程—网络层
开发语言·前端·网络·人工智能·智能路由器
不负岁月无痕21 小时前
简单理解操作系统结构
java·linux·c语言·开发语言·c++·面试
SomeB1oody21 小时前
【RustyML入门】2.9. MeanShift
开发语言·后端·机器学习·rust·教程
萧瑟其中~21 小时前
多线程锁详解:互斥锁·自旋锁·读写锁(CAS + futex 原理)
开发语言·c++
qq_448011161 天前
C语言中的指针函数和函数指针
java·c语言·开发语言
初级代码游戏1 天前
iOS开发 Swift 速记7:结构体和类
开发语言·ios·swift