QFuture.isFinished()使用
时间: 2024-02-04 21:03:27 浏览: 109
finished_files.zip
`QFuture.isFinished()` 方法通常在使用 Qt 的异步编程模型时使用。当您使用 `QFuture` 对象来管理一个耗时的任务时,您可以使用 `isFinished()` 方法来检查该任务是否已经完成。以下是一个简单的示例,演示了如何使用 `QFuture.isFinished()`:
```cpp
#include <QtCore/QCoreApplication>
#include <QtCore/QFuture>
#include <QtCore/QtConcurrent>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFuture<int> future = QtConcurrent::run([](){
// 模拟一个耗时的任务
for(int i = 0; i < 1000000000; i++){}
return 42;
});
// 检查任务是否完成
while(!future.isFinished()){
// 这里可以做一些其他的工作,比如更新进度条
QCoreApplication::processEvents();
}
// 任务已经完成,获取结果并输出
int result = future.result();
qDebug() << "Task finished with result:" << result;
return a.exec();
}
```
在上面的示例中,我们使用 `QtConcurrent::run()` 方法在一个单独的线程中运行一个耗时的任务,并将结果保存到一个 `QFuture` 对象中。然后,我们使用 `isFinished()` 方法来检查任务是否已经完成,如果任务还没有完成,我们可以在等待任务完成的同时做一些其他的工作。一旦任务完成,我们就可以使用 `result()` 方法获取结果并进行处理。
阅读全文