1

我试图从实例化类的那一刻起运行一个线程。

该类有一个头文件:

#include <boost/thread.hpp>
....
class test
{
public:
....
boost::thread worker(doWork); --->how should this be declared?
...
}

在类方法中,我实现了应该在线程“worker”中调用的函数doWork()。

...
void doWork()
{
while(1)
{
std::cout<<"hello";
}
}
....

只要实例化了“test”类,我应该在哪里实例化 boost::thread 来运行线程?

谢谢

4

1 回答 1

0

您将在构造函数中对其进行初始化:

test::test() : worker(doWork) {}

尽管您暗示它可能是成员函数;在这种情况下,您需要将其绑定到对象以调用成员:

worker([this]{doWork();})                // C++11
worker(boost::bind(&test::doWork, this)) // Old-school
于 2013-11-07T16:29:46.193 回答