QFuture用法

首先添加头文件

#include <QtConcurrent/QtConcurrent>
#include <QFutureWatcher>

然后

    // 使用 QFutureWatcher 监听完成事件
    QFutureWatcher<void> *watcher = new QFutureWatcher<void>(this);
    connect(watcher, &QFutureWatcher<void>::finished, this, [this, watcher](){
        watcher->deleteLater();
        // 完成后需要执行的内容
    });
 
    // 将同步函数放到线程池中异步执行
    QFuture<void> future = QtConcurrent::run([](){
        // 需要异步执行的内容
    });
 
    watcher->setFuture(future);