繁体   English   中英

如何在C ++ 11的Mac上创建async :: thread?

[英]How to create a async::thread on Mac in C++11?

是否有可能在C ++程序上启动异步线程?

喜欢

std::async(function);

在Mac上,它对我不起作用,并且主Programm等待返回。

我想从程序的开头开始我的异步线程,并关闭它使其停止...,而不进行任何同步或类似操作。

我在XCode中使用C ++ 11。 如果您对我有解决方案,那就太好了。

非常感谢

您应该通过传递std :: launch :: async作为第一个参数来指定希望线程异步运行。 否则,运行时系统可以选择推迟启动:

#include <future>

void function()
{
    // do asynchronous stuff.
}

int main()
{
    std::future<void> fut = std::async(std::launch::async, function);

    // do other stuff

    fut.get(); // synchronize threads
}

那应该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM