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");       //任务处理函数
    });
相关推荐
李少兄9 天前
解决OSS存储桶未创建导致的XML错误
xml·开发语言·python
阿蒙Amon9 天前
《C#图解教程 第5版》深度推荐
开发语言·c#
学Linux的语莫9 天前
python基础语法
开发语言·python
mahuifa9 天前
PySide环境配置及工具使用
python·qt·环境配置·开发经验·pyside
小灰灰搞电子9 天前
Qt PyQt与PySide技术-C++库的Python绑定
c++·qt·pyqt
暖馒9 天前
C#委托与事件的区别
开发语言·c#
嘉琪0019 天前
2025——js 面试题
开发语言·javascript·ecmascript
Jinxiansen02119 天前
Vue3 中 ref 与 reactive 使用场景总结(含对比与示例)
开发语言·javascript·ecmascript
时空自由民.9 天前
C++ 不同线程之间传值
开发语言·c++·算法
止观止9 天前
Rust智能指针演进:从堆分配到零复制的内存管理艺术
开发语言·后端·rust