溫馨提示×

如何使用std::future獲取異步任務(wù)的結(jié)果

c++
小樊
92
2024-08-11 10:12:36
欄目: 編程語言

您可以使用std::future來獲取異步任務(wù)的結(jié)果。下面是一個簡單的示例代碼,演示如何使用std::async來創(chuàng)建一個異步任務(wù),并使用std::future來獲取其結(jié)果:

#include <iostream>
#include <future>

int calculateSum(int a, int b) {
    return a + b;
}

int main() {
    // 創(chuàng)建一個異步任務(wù),并獲取std::future對象
    std::future<int> result = std::async(std::launch::async, calculateSum, 5, 10);

    // 等待異步任務(wù)完成,并獲取結(jié)果
    int sum = result.get();

    std::cout << "Sum is: " << sum << std::endl;

    return 0;
}

在上面的示例中,std::async函數(shù)創(chuàng)建了一個異步任務(wù),該任務(wù)調(diào)用calculateSum函數(shù)計(jì)算5和10的和。std::future對象result用于獲取異步任務(wù)的結(jié)果,調(diào)用result.get()會等待異步任務(wù)完成并返回結(jié)果。

請注意,您可以使用std::futurevalid()方法檢查異步任務(wù)是否已完成,還可以使用wait()方法等待異步任務(wù)完成而不獲取結(jié)果。

0