std::string getData(std::string token)
{
std::string data = "Data :" + token;
return data;
}
int main()
{
// 创建封装回调的packaged_task<函数指针>
std::packaged_task<std::string(std::string)> task(getDataFromDB);
////从package_task<>获取相关的future<>
std::future<std::string> result = task.get_future();
//将packaged_task传递给线程以异步运行
std::thread th(std::move(task), "Arg");
// join,阻塞到线程完成时返回
th.join();
// 获取packaged_task<>的结果,即getDataFromDB()的返回值
std::string data = result.get();
std::cout << data << std::endl;
}
C++11 packaged_task,函数指针类型
最新推荐文章于 2025-10-23 14:03:38 发布
本文介绍了一个使用C++标准库中的packaged_task和future进行异步数据获取的例子。通过创建packaged_task并将其传递给线程,可以在主线程中等待并获取异步任务的返回结果。

753

被折叠的 条评论
为什么被折叠?



