[英]c++ thread member function receive value
我有一个类成员函数,我在一个线程中使用,我想用该线程设置类的值。
#include <thread>
#include <iostream>
using namespace std;
class foo
{
public:
void assign_value();
int value;
};
void foo::assign_value()
{
value = 1;
cout << "value within assign_vale() is " << value << '\n';
}
int main()
{
foo f;
thread t1(&foo::assign_value, f);
t1.join();
cout << "value in main is " << f.value << '\n';
return 0;
}
输出如下:
value within assign_vale() is 1
value in main is 0
我希望f.value也能达到1;
长话故事是我编写了一个线路跟踪机器人,它必须放在一条线上,然后等到按下一个按钮。 然后测量光传感器的值并将该值作为目标值。 我想把这个等待直到按钮编程为一个暂停的线程。 稍后可以按下相同的按钮来停止程序,这是一个分离的线程。 但是,我有问题从程序的所有后续部分正确获取第一个线程的值。
采用
thread t1(&foo::assign_value, std::ref(f));
thread t1(&foo::assign_value, &f);
目前,该线程使用f
的副本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.