我尝试使用以下语句将成员函数作为线程函数调用
boost::thread getURInHashThread(boost::bind(&Worker::run, this));
其中
Worker
是班级和
run()
是方法。我在同一个Worker
类的另一个成员函数中有这个语句所以我给了this
。
但是,我收到了错误
error:bind is not a member of boost.
我无法理解这一点。请帮忙。 在此先感谢:)。
#include <boost/thread/thread.hpp>
#include <iostream>
class Test
{
public:
void Main() { boost::thread t(&Test::run, this); }
void run() { while(1){ std::cout << "some functionality here"; } }
};
int main()
{
Test test;
test.Main();
}
答案 0 :(得分:0)
boost thread在内部使用bind,所以:
#include <boost/thread/thread.hpp>
#include <iostream>
class Test
{
public:
void Main() { std::cout << "hello" << std::endl; }
};
int main()
{
Test test;
boost::thread t(&Test::Main, test);
t.join();
}