MSVC 2015异步不起作用

时间:2017-11-30 12:45:46

标签: c++ visual-studio-2015 stdasync

我遇到了std::async的麻烦,在MSVC 2012上使用相同的代码工作正常,但在2015年相同的代码不是异步的。

    std::async(std::launch::async, MyClass::MyMethod, this);
    std::cout << "IT WORKS!!!\n";

MyClass上的MyMethod

    static void MyMethod(MyClass *myObject) {
        while (true) {
            std::cout << "Works fine inside " << myObject->name << "\n";
            Sleep(2000);
        }
    }

关键是......永远不会看到打印IT WORKS!!!我在Visual 2012上尝试相同的代码并且工作得很完美。这可能是错误的吗?

EDITED

更改后

    auto _ = std::async(std::launch::async, MyClass::MyMethod, myObject) 

它的工作方式不同,但没有那么明确。

说明:有一个CommLink对象使用套接字来重新接收信息,这个线程通过crouue向“引擎”发送信息,“引擎”创建其他线程(MyClass)来捕获相机图像......现在调用“相机”

更改后,Camera线程工作,但Engine不会创建第二个和soo。

0 个答案:

没有答案