我需要幫助,我的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