原理:定义好处理函数以后,为其定义一个Helper的静态函数,在该静态函数中调用成员函数。pthread_create中绑定的是Helper的静态函数,并传输this指针。函数
实现:
this
class NDNMib { public: NDNMib():m_pid(-1){} void start(); ~NDNMib() { if(m_pid!=-1) { pthread_kill(&m_pid, SIGKILL); } } private: void startProcessEnvents(void); static void* startProcessEventsHelper(void*); private: ndn::Face m_face; pthread_t m_pid; }; void NDNMib::start() { pthread_create(&m_pid, NULL, &NDNMib::startProcessEventsHelper, this); } void NDNMib::startProcessEvents() { try { while(true) { m_face.processEvents(); } } catch(std::exception e) { } } void* NDNMib::startProcessEventsHelper(void* args) { ((NDNMib*)args)->startProcessEvents(); return NULL; }