没有静态成员函数的pthread
我有一个ClassB有一个线程对象和一个函数定义为:
pthread_t m_thWorkThread;
void* ThreadProc(void *);
而在ClassB的构造函数中,我创建了一个如下所示的线程:
pthread_create(&m_thWorkThread, NULL, &(ClassB::ThreadProc), this);
但是我收到了两条错误消息:
错误:ISO C ++禁止将非限定或带括号的非静态成员函数的地址形成指向成员函数的指针。
无法将*(ClassB ::)(void)“void*()(void)â作为参数â3â转换为âintpthread_create(pthread_t *,const pthread_attr_t *,void *()(void),void *)âpthread_create( &m_thWorkThread,NULL,&(ClassB :: ThreadProc),this);
但是,如果我将该函数定义为静态,它不会抱怨:
static void* ThreadProc(void *);
但我不希望它是静态的,因为我将创建多个线程,并且我希望每个线程都有一个单独的ThreadProc函数。
链接地址: http://www.djcxy.com/p/96373.html