gpt4 book ai didi

c++ - std::async 中的奇怪行为

转载 作者:行者123 更新时间:2023-11-28 02:18:55 25 4
gpt4 key购买 nike

我希望有一个任务可以在时间流逝时被终止。

所以我正在尝试这个:

#include <iostream>
#include <future>

using namespace std;

int main()
{
auto handle = std::async(std::launch::deferred,[]
{
cout<<"Initializing thread..."<<endl;
this_thread::sleep_for(std::chrono::seconds(5));
}
);

cout<<"Starting..."<<endl;
handle.wait_for(std::chrono::seconds(2));

cout<<"Finished correctly"<<endl;
return 0;
}

输出:

Starting...

Finished correctly

为什么不打印“Initializing thread...”?我尝试交换两个计时码表,但无论如何都不起作用

最佳答案

你从不要求任务的结果,所以它没有被安排。

deferred 替换为 async,您将得到您期望的结果。

关于c++ - std::async 中的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33177141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com