Qt扫盲-QFutureWatcher理论总结

QFutureWatcher理论总结

  • 一、概述
  • 二、转态

一、概述

QFutureWatcher类允许我们使用信号槽的方式去监控QFuture。

QFutureWatcher提供关于QFuture的信息和通知。使用 setFuture() 函数开始监视特定的QFuture。

future()函数通过setFuture()返回 QFuture 集合。

为了方便起见,QFuture的几个函数也可以在 QFutureWatcher 中使用:progressValue(), progressMinimum(), progressMaximum(), progressText(), isStarted(), isFinished(), isRunning(), isCanceled(), isPaused(), waitForFinished(), result() 和 resultAt()。cancel()、setPaused()、pause()、resume() 和 togglePaused() 函数是QFutureWatcher中的槽函数。

二、转态

状态变化通过 started()、finished()、canceled()、paused()、resumed()、resultReadyAt() 和 resultsReadyAt() 信号来报告。进度信息由 progressRangeChanged()、void progressValueChanged() 和 progressTextChanged() 信号提供。

节流控制由 setPendingResultsLimit() 函数提供。当挂起的 resultReadyAt() 或 resultsReadyAt() 信号的数量超过限制时,future表示的计算将自动进行节流。一旦挂起的信号数量下降到限制以下,计算将恢复。

示例:开始计算并在计算结束时获得一个槽回调:

  // Instantiate the objects and connect to the finished signal.MyClass myObject;QFutureWatcher<int> watcher;connect(&watcher, SIGNAL(finished()), &myObject, SLOT(handleFinished()));// Start the computation.QFuture<int> future = QtConcurrent::run(...);watcher.setFuture(future);

请注意,并非所有正在运行的异步计算都可以取消或暂停。例如,QtConcurrent::run() 返回的 future 不能被取消;但是QtConcurrent::mappedReduced() 返回的 future 可以。

QFutureWatcher<void> 被指定为不包含任何结果获取函数。任何 QFuture 也可以被 QFutureWatcher 观测到。如果只需要状态或进度信息,这是有用的;而不是实际的结果数据。 QFutureWatcher 就是监测的,并不是去表示结果的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/127570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5——网络——RPC

RPC&#xff08;这个是官方文档的资料&#xff09; 要将一个函数声明为 RPC&#xff0c;您只需将 Server、Client 或 NetMulticast 关键字添加到 UFUNCTION 声明。 例如&#xff0c;若要将某个函数声明为一个要在服务器上调用、但需要在客户端上执行的 RPC&#xff0c;您可以…

【Linux】配置JDKTomcat开发环境及MySQL安装和后端项目部署

目录 一. JDK及tomcat安装 二&#xff0c;安装Tomcat 三&#xff0c;MySQL安装 四、后端部署 前言&#xff1a; 今天我们就来在Linux上安装JDK及tomcat&#xff0c;MySQL&#xff0c;希望你可以通过这一博客&#xff0c;找到你的答案&#xff01;&#xff01;&#xff01; …

2023-macOS下安装anaconda,终端自动会出现(base)字样,如何取消

2023-macOS下安装anaconda&#xff0c;终端自动会出现(base)字样&#xff0c;如何取消 安装后&#xff0c;我们再打开终端&#xff0c;就会自动出现了&#xff08;base&#xff09; 就会出现这样子的&#xff0c;让人头大&#xff0c; 所以我们要解决它 具体原因是 安装了anac…

从JDBD的封装方面重新认识Mybaits

前言&#xff1a;SQLSession是对JDBC的封装 MyBatis 是一个 Java 持久化框架&#xff0c;它通过对 JDBC 的封装来简化数据库访问操作。核心的 SQLSession 对象是 MyBatis 的核心组件之一&#xff0c;负责管理数据库连接、执行 SQL 语句以及映射查询结果等功能。 具体来说&…

Windows11恢复组策略编辑器功能的方法

原因分析 日常工作学习中,对 Windows 计算机上的问题进行故障排除时,有些高级用户经常使用组策略编辑器轻松修复它。通过其分层结构,您可以快速调整应用于用户或计算机的设置。如果搜索结果中缺少组策略编辑器,则可能必须使用注册表编辑器作为疑难解答工具,这是一种更复杂…

nmap指纹识别要点以及又快又准之方法

nmap指纹识别要点以及又快又准之方法 一. 前言:二. nmap识别实验:一. 实验一:IP配置:空间配置:扫描结果:详细输出二. 实验二:IP配置:空间配置:扫描结果:详细输出三. 实验三:IP配置:空间配置:扫描结果:详细输出四. 实验四:IP

力扣:147. 对链表进行插入排序(Python3)

题目&#xff1a; 给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表。每次迭代中&#xff0c…

调试人脸识别项目解决方法的链接

1、failed call to cuInit: CUDA_ERROR_NO_DEVICE https://blog.csdn.net/JoyceYa/article/details/104379697/ 2、tensorflow.python.framework.errors_impl.InternalError: Blas SGEMM launch failed https://blog.csdn.net/See_Star/article/details/108762531 3、Attri…

Golang Web3钱包开发指南

简介 以太坊&#xff08;Ethereum&#xff09;是目前最受欢迎的区块链平台之一&#xff0c;它提供了智能合约功能和去中心化应用&#xff08;DApps&#xff09;的开发能力。在以太坊生态系统中&#xff0c;Web3钱包扮演着关键角色&#xff0c;允许用户管理账户和密钥、发送交易…

0基础学习PyFlink——时间滑动窗口(Sliding Time Windows)

在《0基础学习PyFlink——时间滚动窗口(Tumbling Time Windows)》我们介绍了不会有重复数据的时间滚动窗口。本节我们将介绍存在重复计算数据的时间滑动窗口。 关于滑动窗口&#xff0c;可以先看下《0基础学习PyFlink——个数滑动窗口&#xff08;Sliding Count Windows&#x…

韩国ORANGE橘子室内高尔夫—万万没想到除了打球还能唱歌、看电影

韩国ORANGE橘子室内高尔夫—万万没想到除了打球还能唱歌、看电影&#xff01; 你知道吗&#xff1f;室内高尔夫除了打球&#xff0c;还可以唱歌 看电影&#xff01; 在这个让人兴奋的室内高尔夫场地&#xff0c;你将体验到全新的娱乐方式。快来和小伙伴们一起挥杆&#xff0c;…

springboot医院绩效考核系统源码

医院绩效考核系统是一种以人力资源管理为基础&#xff0c;选用适合医院组织机构属性的绩效理论和方法&#xff0c;基于医院战略目标&#xff0c;构建全方位的绩效考评体系&#xff0c;在科学、合理的绩效管理体系基础上&#xff0c;采用科学管理的方法&#xff0c;如平衡计分卡…

DNEAT: 一个全新的用于OD需求预测的动态节点-边注意力网络

文章信息 本周阅读的论文是一篇2020年发表在《Transportation Research Part C》上关于OD需求预测的文章&#xff0c;题目为《DNEAT: A novel dynamic node-edge attention network for origin-destination demand prediction》。 摘要 近年来&#xff0c;网约车服务平台在全球…

MCU HardFault_Handler调试方法

一.获取内核寄存器的值 1.在MDK的DEBUG模式下&#xff0c;当程序出现跑飞后&#xff0c;确定卡死在HardFault_Handler中断处 2. 通过Register窗口读取LR寄存器的值来确定当前系统使用堆栈是MSP还是PSP LR寄存器值堆栈寄存器0xFFFFFFF9MSP寄存器0xFFFFFFFDPSP寄存器 如下图所…

机器学习-特征工程

一、特征工程介绍 1.1 什么是特征 数值特征&#xff08;连续特征&#xff09;、文本特征&#xff08;离散特征&#xff09; 1.2 特征的种类 1.3 特征工程 特征是机器学习可疑直接使用的&#xff0c;模型和特征之间是一个循环过程&#xff1b; 实际上特征工程就是将原始数据…

程序员福利,免费好用的API汇总

全国快递物流地图轨迹查询&#xff1a;【H5物流轨迹、单号识别】通过物流单号和收寄件地址&#xff0c;自动评估物流时效&#xff0c;并在地图中展示包裹运输轨迹。包括顺丰、圆通、申通等主流快递公司。自动识别快递公司及单号&#xff0c;实时查询&#xff0c;稳定高效&#…

js的垃圾回收机制?

JavaScript 的垃圾回收机制是自动进行的&#xff0c;开发者不需要手动管理内存。垃圾回收机制的主要目标是找出不再使用的变量&#xff0c;并释放其占用的内存空间。在 JavaScript 中&#xff0c;当一个变量或对象不再被引用时&#xff0c;垃圾回收器会认为它不再需要&#xff…

Redsync 源码简单分析

Redsync 源码简单分析 加锁自动续期解锁 加锁 使用 setnx 进行加锁&#xff0c;没有实现分布式锁的可重入性。 func (m *Mutex) acquire(ctx context.Context, pool redis.Pool, value string) (bool, error) {conn, err : pool.Get(ctx)if err ! nil {return false, err}def…

在Photoshop中如何校正倾斜的图片

在Photoshop中如何校正倾斜的图片呢&#xff1f;今天就教大家如何操作。 将需要操作的图片拉到PS软件中&#xff0c;自动形成项目。 点击上方“滤镜”中的“镜头校正”。 进入“镜头校正”窗口&#xff0c;点击左侧的“拉直工具”。文章源自设计学徒自学网-http://www.sx1c.co…

Incremental Object Detection via Meta-Learning【论文解析】

Incremental Object Detection via Meta-Learning 摘要1 介绍2 相关工作3 方法3.1 问题描述3.2元学习梯度预处理3.3增量式目标检测器摘要 摘要:在真实世界的情境中,目标检测器可能会不断遇到来自新类别的物体实例。当现有的目标检测器应用于这种情景时,它们对旧类别的性能会…