QtConcurrent 的 waitForFinished() 方法用于阻塞当前线程,直到所有 QtConcurrent 任务完成。

当使用 QtConcurrent 库执行一些耗时的任务时,可以通过 waitForFinished() 方法来等待所有任务完成。这对于需要确保任务完成后再进行后续操作的情况非常有用。

waitForFinished() 方法可以用在任何 QtConcurrent 任务执行完毕后需要进行后续操作的地方,例如在主线程中等待后台任务完成后更新 UI 界面。通过调用 waitForFinished() 方法,可以确保在所有后台任务完成之前,主线程不会继续执行后续代码。

示例代码如下:

QFuture<void> future = QtConcurrent::run([]
{
    // 在后台线程中执行一些耗时任务
    // ...
});

// 等待所有任务完成
future.waitForFinished();

// 后续操作
// ...

在上述代码中,首先创建了一个 QtConcurrent 任务,并将其赋值给 QFuture 对象 future。然后,通过调用 future 的 waitForFinished() 方法,阻塞主线程,直到所有任务完成。一旦所有任务完成,主线程将继续执行后续操作。

需要注意的是,waitForFinished() 方法是一个阻塞方法,会导致当前线程一直等待,直到所有任务完成。因此,在使用 waitForFinished() 方法时需要注意避免在主线程中调用,以免导致 UI 界面无响应。

QtConcurrent waitForFinished() 方法详解 - 阻塞线程等待任务完成

原文地址: https://www.cveoy.top/t/topic/m5MN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录