【发布时间】:2012-08-20 18:29:53
【问题描述】:
class Scoreget{
private:
//some variables
public:
Scoreget(){
//something here
}
void* basicgetscore(){
//somthing here
}
void getscore(Scoreget s){
pthread_t t;
if(pthread_create(&t,NULL,s.basicgetscore,NULL)==-1){
printf("Error 3\n");
exit(3);
}
void *a;
if(pthread_join(t,&a)==-1){
printf("Error \n);
exit(4);
}
}
};
我正在尝试运行一个单独的线程来调用函数,因为它使用对 execl() 的调用,因此会停止我的程序(我在 Windows 上,不能使用 fork())。将线程与类结合起来让我很难受。
通过谷歌搜索,我了解到我需要将最后一个函数设为朋友或静态,并使用某种 this 指针。我已经尝试过,但零件不合身。我什至无法更改错误类型。现在让我很沮丧。得到同样的错误:
无法将 Scoreget::basicgetscore 从类型 void*(Scoreget::)() 转换为类型 void* (*) (void *)
【问题讨论】:
-
@^ :老实说,我到处搜索。现在,如果人们没有正确包含我们在遇到时搜索的错误,我怎么会知道该帖子存在?该错误可能出现在标题中,因此搜索可能会向我显示一些内容。 :-/
-
这个问题有很多重复。
标签: c++ multithreading