QFuture 5.13.0用法
时间: 2024-02-01 13:04:08 浏览: 65
asyncfuture:将QFuture用作Promise对象
QFuture 是 Qt 提供的一个用于处理异步操作的类,它可以方便地对异步操作进行管理和监控。在 Qt 5.13.0 中,QFuture 的使用方法如下:
1. 定义一个异步任务函数,该函数需要返回一个结果:
```cpp
int myTask(int arg)
{
// 执行一些耗时的操作
return arg * 2;
}
```
2. 创建一个 QtConcurrent::run() 对象来启动异步任务,该函数接受一个参数,即上面定义的异步任务函数:
```cpp
QFuture<int> future = QtConcurrent::run(myTask, 42);
```
这将返回一个 QFuture<int> 对象,表示任务的状态和结果。
3. 监控异步任务的状态和结果:
```cpp
if (future.isRunning()) {
// 任务正在执行
} else if (future.isFinished()) {
// 任务已经完成
int result = future.result();
qDebug() << "Result:" << result;
} else if (future.isCanceled()) {
// 任务被取消
}
```
4. 如果需要取消任务,可以调用 QFuture 的 cancel() 函数:
```cpp
future.cancel();
```
需要注意的是,QFuture 的使用需要在 QtConcurrent 命名空间中进行,所以需要在代码中包含头文件:
```cpp
#include <QtConcurrent/QtConcurrent>
```
阅读全文