int func(){
//logic
}
void test(){
std::future<int> f=std::async(std::launch::async,func);//同步执行任务
std::future_status s;
//第一个循环防止程序没有启动,wait_for返回的结果是std::future_status::deferred
while ((s=f.wait_for(std::chrono::seconds(1)))!=std::future_status::deferred) {
//第二个循环等待任务结束
while (f.wait_for(std::chrono::seconds(1))!=std::future_status::ready) {
cout<<"Not Ready"<<endl;
std::this_thread::yield();
}
}
}
C++标准库(第二版)C++11 等待和轮询
最新推荐文章于 2025-08-14 15:42:11 发布
本文介绍了一个使用C++标准库中的std::async进行异步任务管理的例子,并展示了如何通过双重循环来确保任务正确启动并完成。重点讲解了如何避免任务被挂起以及如何检查任务状态。

70

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



