我需要帮助,我的C++程序。 我开始主函数旁主题:从线程访问一个对象的变量
thread Thread1(&Foo::Loop1, info,std::ref(info));
thread Thread2(&Foo::Loop2, info,std::ref(info));
info
是从含有bool active
类Foo
一个对象后,我改变Loop1
或Loop2
的active
到true
但该值不变化。他们每次都是一样的。
我的函数原型是这样的:
void Loop1(Foo info);
void Loop2(Foo info);
调用的函数:
void Foo::Loop1(Foo info){
while (true){
if (info.active){
//Stuff
}
}
}
所以,我应该怎么做才能通过从对象Foo
其价值的变化在main
功能使值active
中的Loop
功能是相等的。
谢谢你的帮助:)
SRY但两者didnt工作:/线程只能传递价值,而不是参考。我尝试了很多东西:/ – NicMaxFen
确定它:)使用std :: ref时创建线程和作为参数。我用你的例子使用Foo&info – NicMaxFen