头文件:
class ThreadFunc{
public:
void operator()(void){
cout << "thread begin " << endl;
while(1){
Sleep(6000);
cout << "hello thread " << endl;
}
}
public:
void func(int arg);
};
class SerialThread{
public:
void start();
void run();
protected:
ThreadFunc func_;
boost::thread *some_thread_;
};
cpp文件:
#include "serial_thread.h"
void ThreadFunc::func(int arg){
while(1){
Sleep(6000);
cout << "arg is 3" << endl;
}
}
void SerialThread::start(){
//some_thread_ = new boost::thread(func_);
some_thread_ = new boost::thread(boost::bind(&ThreadFunc::func,&func_,3));
}
void SerialThread::run(){
some_thread_->join();
}
通过与boost 的function bind的使用,可以很方便的使得线程函数与线程类分离开