QFutureWatcher:异步运行监视者

QFutureWatcher是Qt库中的一个类,用于监视QFuture对象的状态和进度。它可以与QFuture配合使用,提供完成、取消、暂停、进度变化等通知。通过设置不同的信号槽连接,可以实现异步任务完成后执行特定操作。例如,当任务完成时调用对象的handleFinished()方法。此外,QFutureWatcher还可以限制待处理结果的数量,避免过度触发事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、描述

QFutureWatcher 提供有关 QFuture 的信息和通知。

示例:开始运行并在完成后获取槽回调:

 MyClass myObject;
 QFutureWatcher<int> watcher;
 connect(&watcher, &QFutureWatcher<int>::finished, &myObject, &MyClass::handleFinished);

 QFuture<int> future = QtConcurrent::run(...);
 watcher.setFuture(future);

QFutureWatcher<void> 专门用于不包含任何结果获取函数。

任何 QFuture<T> 也可以被 QFutureWatcher<void> 监视。如果只需要状态或进度信息,这很有用。


二、成员函数

有部分成员函数和QFuture同名和功能相同,不赘述。

1、[信号] void canceled()

如果监视的 QFuture 被取消,则发出此信号。

2、[信号] void paused()

当监视的 QFuture 暂停时发出此信号。

3、[信号] void progressRangeChanged(int minimum, int maximum)

监视的 QFuture 进度范围已更改为最小值和最大值。

4、[信号] void progressTextChanged(const QString &progressText)

监视的 QFuture 报告文本进度信息时发出这个信号。

5、[信号] void progressValueChanged(int progressValue)

当监视的 QFuture 报告进度时发出此信号,progressValue 给出当前进度。为了避免 GUI 事件循环过载,QFutureWatcher 限制了进度信号发射率。最后一个进度更新(progressValue 等于最大值)将始终交付。

6、[信号] void resultReadyAt(int index)

当监视的 QFuture 报告index处的索引会发出此信号。

7、[信号] void resultsReadyAt(int beginIndex, int endIndex)

当监视的 QFuture 报告准备好的结果。结果从 beginIndex 到 endIndex 进行索引。

8、void setFuture(const QFuture<T> &future)

开始监视QFuture。

9、void setPendingResultsLimit(int limit)

提供节流控制。 当待处理的 resultReadyAt() 或 resultsReadyAt() 信号的数量超过限制时,监视的 QFuture 所代表的计算将被自动节流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值