c++中pthread_create+回调本类成员函数的例程
class Work_Thread
{
public:
Work_Thread():_pid(-1){}
void start();
~Work_Thread()
{
if(_pid!=-1)
{
pthread_kill(&_pid, SIGKILL);
}
}
private:
void startProcessEnvents(void);
static void* startProcessEventsHelper(void*);
private:
pthread_t _pid;
};
void Work_Thread::start()
{
pthread_create(&_pid, NULL, &Work_Thread::startProcessEventsHelper, this);
}
void Work_Thread::startProcessEvents()
{
try
{
while(true)
{
;
}
}
catch(std::exception e)
{
}
}
void* Work_Thread::startProcessEventsHelper(void* args)
{
((Work_Thread*)args)->startProcessEvents(); // 强制类型转换
return NULL;
}