您的位置:首页 > 编程语言 > Qt开发

Qt 非静态成员函数作为线程函数?

2017-09-26 17:13 127 查看
Qt使用中,有次使用非静态成员函数作为线程函数

即:

trhead_creat(&id,,NULL,线程函数,NULL);

出现了问题,说invalid use of non-static nember function

查询了资料发现,类的非静态成员函数都有一个隐含的参数即,this指针。

看似线程函数一个参数没有,实际上隐含了一个参数,当然无法调用。

要么将线程函数转化成静态成员函数,为类所有,防止出现this指针。

但有时候线程函数中需要使用一些类的非静态成员函数,则需要this指针,很不方便。

也可以使用非静态成员函数作为线程函数的。

即:

trhead_creat(&id,,NULL,线程函数fun,this);

void *fun(void *arg)

{

 Myclass *p =  (Myclass *)arg;

p->func();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程 qt 函数