我试图在多线程中从名为SVAnchor
的类运行名为extensionStep
的函数。我用这个代码:如何使用pthreads对类成员函数进行多线程处理?
rc = pthread_create(&threads[i], NULL, extensionStep, &td[i]);
调用的函数,在这里是extensionStep
定义:
void* SVAnchor::extensionStep(void *threadarg)
,我得到了以下错误:
error: cannot convert 'SVAnchor::extensionStep' from type 'void* (SVAnchor::)(void*)' to type 'void* (*)(void*)'
rc = pthread_create(&threads[i], NULL, extensionStep, &td[i]);
^
,显示问题从类型'void *(SVAnchor ::)(void *)'转换为类型'void *()(void)'
How解决这个问题?
感谢所有
你应该考虑的std ::线程(如果C++ 11) –
@DieterLücking你的意思是pthreads不支持这件事?对我来说真的很贵,去std :: thread – ameerosein
@ameerosein试着做rc = pthread_create(&threads [i],NULL,&(SVAnchor :: extensionStep),&td [i]); – user3286661