我需要在类的ctor中初始化std :: thread。线程应该运行类本身的成员函数。在尝试初始化线程时,程序试图运行成员函数。 (移动语义被执行)。初始化可移动类的ctor中的std :: thread
Page::Page(Motion *_parent):
parent(_parent)
{
std::thread x(&Page::play,this);
starter = std::move(x);
}
程序运行的this
play()
!
编辑:我这样做:
void Page::start()
{
std::thread x(&Page::play,this);
x.join();
}
而且工作正常,但不知道是否确定或不...现在我玩std::bind
如果它这样做的标准方式,我将会替换代码。
我不明白你的问题是什么。 – kukyakya 2012-02-14 06:14:15
@kukyakya:问题出在ctor的第一行,程序运行'this-> play()'。 – 2012-02-14 06:18:39
@Joachim:我想不出来...... – 2012-02-14 06:56:33