您可以使用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::future
的valid()
方法檢查異步任務(wù)是否已完成,還可以使用wait()
方法等待異步任務(wù)完成而不獲取結(jié)果。