栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Qt之线程的使用(moveToThread方式)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Qt之线程的使用(moveToThread方式)

一.本文介绍Qt线程的另一个使用方式,也是Qt官方推荐的方式,即moveToThread方式,楼主的理解就是,就是将这个线程使用方式【Qt之线程的使用(继承QThread重写run函数)】中run函数部分独立出来封装成一个工作类,然后把这个工作类装入另一个线程,依托这个线程进行执行。
二.实现过程
1.新建一个类,封装要执行的业务逻辑,其中要包括开始执行的槽函数以及执行完成的信号,其他方法可以根据需要具体的业务需要进行定义实现
cpp核心代码

void Worker::startWork()
{
    qDebug()< 

2.调用过程核心代码:主要是将工作类移入线程,以及什么时候开始执行,执行完成需要干啥,后面两个都可以通过信号槽来完成

void Widget::on_pushButton_clicked()
{
    work = new Worker();
    thread = new QThread();

    connect(thread,SIGNAL(started()),work,SLOT(startWork()));
    connect(thread,SIGNAL(finished()),work,SLOT(deleteLater()));
    connect(work,SIGNAL(workFinshed()),this,SLOT(onWorkFinshed()));

    work->moveToThread(thread);
    thread->start();
}

void Widget::onWorkFinshed()
{
    thread->quit();
    thread->wait();
    delete thread;
    thread=nullptr;
}

3.运行效果

三.工程源码

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675683.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号