C++中的线程函数如何访问类中的成员变量

 我来答
溥冉愈德运
2019-11-18 · TA获得超过3518个赞
知道大有可为答主
回答量:3064
采纳率:27%
帮助的人:207万
展开全部
有两种方法:a.
定义线程函数为全局函数
b.
定义线程函数为类的静态成员函数
针对线程函数为类的静态成员进行说明。如果是静态数据成员,当然可以直接访问,但是如果要访问非静态数据成员,直接访问是做不到的。如果要想在线程函数中访问和操作类的非静态成员变量,可以把线程函数作为一个适配器,在适配器中调用类的非静态成员函数。例如:
class
CMyClass{public:
void
TestFunc();
static
int
ThreadFunc(LPVOID
pParam);//
Adapterprotected:
int
ThreadFuncKernal();//
Kernal}void
CMyClass::TestFunc(){
AfxBeginThread(TreadFunc,
this);}//
Thread
function
Adapter
int
CMyClass::ThreadFunc(LPVOID
pParam){
CMyClass
*pObj
=
(CMyClass
*)pParam;
return
pObj-ThreadFuncKernal();}//
Thread
function
kernal
int
CMyClass::ThreadFuncKernal(){while(1){
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式