我以前使用 (\n -> eval y >>= (\m -> safediv n m)) n
函数作为void*
的第三个参数,这就是它的样子:
pthread_create
这很有用。但是我对代码进行了一些更改,并且需要函数void* nameChange(void*){ ... }
...
pthread_t id;
pthread_create(&id, NULL, nameChange, NULL);
成为我的类nameChange
的成员。这是现在唯一的区别:
MainWindow
现在,我将void* MainWindow::nameChange(void*)
作为参数时出错。这就是它的内容:
nameChange
我在这里做错了什么?我对线程很陌生,所以感谢任何帮助!
答案 0 :(得分:2)
C函数和C ++成员函数之间的区别在于C函数使用 cdecl 调用约定,而成员函数使用 thiscall 调用约定。您无法直接调用成员函数。 成员函数指针与函数指针的类型不同。
也许这是一个解决方法
void* callback(void*)
{
MainWindow instance;
instance.nameChange();
}
pthread_create(&id, NULL, callback, NULL);