首页 > 解决方案 > 如何在不创建静态函数的情况下调用线程

问题描述

我有一个看起来像这样的代码

class foo
{
    public:
    foo();
    ~foo();
    int process(); 
};

int main()
{
    foo myfoo1;
    foo myfoo2;

    std::thread firstthread(myfoo1.process());
    std::thread secondthread(myfoo2.process());
    return 0;
}

这是我得到的错误

'std::invoke': no matching overloaded function found    Disparity   

我知道编译器在抱怨,因为process()不是static,但这涉及对类进行重大更改,我不想走那条路。关于如何启动胎面的任何其他提示?

我不能做

std::thread firstthread(&foo::process,foo() );

因为myfoo1不一样myfoo2...

标签: multithreadingc++11

解决方案


推荐阅读