我有下面的代码非常简单:的std ::异步不起作用异步
void TestSleep()
{
std::cout << "TestSleep " << std::endl;
sleep(10);
std::cout << "TestSleep Ok" << std::endl;
}
void TestAsync()
{
std::cout << "TestAsync" << std::endl;
std::async(std::launch::async, TestSleep);
std::cout << "TestAsync ok!!!" << std::endl;
}
int main()
{
TestAsync();
return 0;
}
由于我使用std::launch::async
我希望TestSleep()
将异步运行,我将有以下的输出:
TestAsync
TestAsync ok!!!
TestSleep
TestSleep Ok
不过说真的我有同步运行的输出:
TestAsync
TestSleep
TestSleep Ok
TestAsync ok!!!
您能否解释为什么以及如何使TestSleep
调用真的异步。