MFC全局线程函数如何获取类的成员变量?
如题:声明了一个全局线程函数:UINTThreadName(LPVOIDlpParam){........return0;}然后该类有若干成员变量m_edit1,m_ed...
如题:声明了一个全局线程函数:
UINT ThreadName(LPVOID lpParam)
{
....
....
return0;
}
然后该类有若干成员变量m_edit1,m_edit2...,请问在线程函数中该如何获取成员变量呢? 展开
UINT ThreadName(LPVOID lpParam)
{
....
....
return0;
}
然后该类有若干成员变量m_edit1,m_edit2...,请问在线程函数中该如何获取成员变量呢? 展开
3个回答
展开全部
在CXXXDlg类中声明static UINT ThreadName( LPVOID lpParam );
类外
UINT CXXXDlg::ThreadName( LPVOID lpParam )
{
CXXXDlg* p = (CXXXDlg*)lpParam;
这样就能用了。
}
开线程时:
AfxBeginThread(CXXXDlg::ThreadName, CXXXDlg对象指针);
要注意的是线程执行完要销毁线程对象,你查查AfxEndThread的第二个参数,我忘了。
还有通过线程对象设置一个成员为TRUE,那系统自动销毁,待会有空找具体的给你。
类外
UINT CXXXDlg::ThreadName( LPVOID lpParam )
{
CXXXDlg* p = (CXXXDlg*)lpParam;
这样就能用了。
}
开线程时:
AfxBeginThread(CXXXDlg::ThreadName, CXXXDlg对象指针);
要注意的是线程执行完要销毁线程对象,你查查AfxEndThread的第二个参数,我忘了。
还有通过线程对象设置一个成员为TRUE,那系统自动销毁,待会有空找具体的给你。
展开全部
AfxBeginThrea一一d()那个参数指针传入!在线程里从lpParam里通过强制转换取出来。MFC不是多线程挺安全的,象需要操作窗体的函数不要在
线程多线程函数里使用。
线程多线程函数里使用。
追问
UINT ThreadName( LPVOID lpParam )
{
CXXXDlg* p = (CXXXDlg*)lpParam;
p->类成员函数或者成员变量。
....
}
请问是否是通过这种的方法?请教具体代码,谢谢!
追答
对,不过弄个对话框过来有问题好哦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
lpLaram这个参数可以传一个指针的 在调用这个线程的时候 把当前的类的一个指针当做参数穿进去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询