关于线程函数的问题

wxfjb 2003-05-26 03:59:55
我想在一个类的成员函数中使用AfxBeginThread()
我的第一个参数使用的是上面这个类中的一个成员函数,编译出错。请问能否将类的成员函数作为线程函数使用
...全文
14 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nimweb 2003-05-27
  • 打赏
  • 举报
回复
做个标记
晨星 2003-05-26
  • 打赏
  • 举报
回复
原来还可以这样,高!
wangbab 2003-05-26
  • 打赏
  • 举报
回复
线程函数必须为全局或静态函数。如要访问类的成员,可以在传递this指针到线程函数。
static ThreadFunction(LPVOID lParam)
{
CMyDialog *pDialog=(CMyDialog*)lParam;
...
}
调用
CMyDialog OnInitDialog()
{
AfxBeginThread(ThreadFunction,this);
...
}
醉马不肖 2003-05-26
  • 打赏
  • 举报
回复
可以,但是必须是静态函数
shuker 2003-05-26
  • 打赏
  • 举报
回复
可以,但是必须是静态函数
或者你可以把你的这个类的成员函数改成全局函数
这样也可以的

关键是类的成员函数默认参数中有一个是this指针
而静态函数和全局函数都没有的
所以编译才会出错

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧