如何使用std :: thread从类构造函数启动线程

时间:2015-07-24 12:30:32

标签: c++ multithreading c++11

我有这个构造函数,用0初始化bar成员并启动一个线程:

Foo::Foo() :
  bar(0)
{
   std::thread threadloop = std::thread(loop); //create a thread with the loop function
   threadloop.join();
}

来自loop()的<{1}}函数:

Foo class

编译器抱怨void Foo::loop() { while (true) { bar++; //do more stuff... } } 方法必须是loop ... 但是,如果我将其static,我如何访问不是static的{​​{1}}个私有成员? (并且不得为静态)。

修改

如果我这样使用,它就不会编译:

Foo

错误:使用已删除的功能。

我想从我的static拨打此电话,而不是来自我班级以外的人。

0 个答案:

没有答案