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

来源:互联网 发布:汽车解剖软件 编辑:程序博客网 时间:2024/05/22 02:11

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();

}


原创粉丝点击