如果时间正在运行,我希望有一项任务可以解决。
所以我试试这个:
#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;
}
输出:
开始......
正确完成
为什么不打印“初始化线程......”?我尝试交换两个chronos并且无论如何都不起作用
答案 0 :(得分:1)
您永远不会要求任务的结果,因此不会安排。
将height: 100vh;
替换为deferred
,您就会得到您期望的结果。
答案 1 :(得分:1)
deferred
仅评估非 -timed wait
函数。如果您更改为:
handle.wait();
你会看到线程从那时开始。