当前位置: 首页 > news >正文

QT最大线程并发

声明一个处理函数;int timeTask();

头文件:

#include <QtConcurrent>
#include <QFuture>

并发处理改函数的任务,直到处理完成:

QFuture<int> ft = QtConcurrent::run(this, &ch72_concurrent::timeTask);while (!ft.isFinished()){QApplication::processEvents(QEventLoop::AllEvents, 30);}

带参数的函数:

将参数写在后面

QFuture<int> ft = QtConcurrent::run(this, &ch74::timeTask, num1, num2);

通过QFutureWatcher获取返回值:

QFutureWatcher<int>* fw = new QFutureWatcher<int>;connect(fw, &QFutureWatcher<int>::finished, [&]{qDebug() << "QFutureWatcher finished";qDebug() << "result = " << fw->result();});QFuture<int> ft = QtConcurrent::run(this, &ch74::timeTask, num1, num2);fw->setFuture(ft);while (!ft.isFinished()){QApplication::processEvents(QEventLoop::AllEvents, 30);}

完整代码

#include "ch74.h"
#include <QDebug>
#include <QtConcurrent>
#include <QFuture>
#include <QFutureWatcher>ch74::ch74(QWidget *parent): QWidget(parent)
{ui.setupUi(this);
}ch74::~ch74()
{}int ch74::timeTask(int& num1, int& num2)
{for (int i = 0; i < 1000; i++){num1++;num2++;qDebug() << num1;qDebug() << num2;}return num1 + num2;
}void ch74::on_pushButton_clicked()
{int num1 = 0;int num2 = 0;QFutureWatcher<int>* fw = new QFutureWatcher<int>;connect(fw, &QFutureWatcher<int>::finished, [&]{qDebug() << "QFutureWatcher finished";qDebug() << "result = " << fw->result();});QFuture<int> ft = QtConcurrent::run(this, &ch74::timeTask, num1, num2);fw->setFuture(ft);while (!ft.isFinished()){QApplication::processEvents(QEventLoop::AllEvents, 30);}
}

http://www.lryc.cn/news/262377.html

相关文章:

  • 在金属/绝缘体/p-GaN栅极高电子迁移率晶体管中同时实现大的栅压摆幅和增强的阈值电压稳定性
  • Redis第1讲——入门简介
  • 数据科学知识库
  • 设计模式——责任链模式(行为模式)
  • 【谭浩强C语言:前八章编程题(多解)】
  • 程序人生15年人生感悟
  • React与AJAX
  • C++ STL泛型算法
  • 使用OpenSSL生成PKCS#12格式的证书和私钥
  • 超详细 | 哈里斯鹰优化算法原理、实现及其改进与利用(Matlab/Python)
  • git 切换远程地址分支 推送到指定地址分支 版本回退
  • YOLOv3-YOLOv8的一些总结
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)控件的部分公共属性和事件
  • 最新同步云盘推荐:实现轻松管理与便捷同步的理想选择
  • (第27天)Oracle 数据泵转换分区表
  • 业务上需要顺序消费,怎么保证时序性?
  • ubuntu 开机提示 you are in emergency mode,journalctl -xb
  • 【Hadoop面试】HDFS读写流程
  • B01、JVM与Java体系结构-01
  • Python:Jupyter
  • macos苹果电脑开启tftp server上传fortigate60e固件成功
  • 如何使用ArcGIS Pro裁剪影像
  • Tekton 构建容器镜像
  • netty-daxin-4(httpwebsocket)
  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《市场环境下考虑全周期经济效益的工业园区共享储能优化配置》
  • WPF——命令commond的实现方法
  • 信息收集 - 域名
  • 基于YOLOv8深度学习的路面标志线检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
  • leetCode算法—1.两数之和
  • oracle 设置访问白名单