社区
进程/线程/DLL
帖子详情
如何让一个线程函数是一个类的成员函数
yueyucanyang
2008-06-18 06:44:30
如何让一个线程函数是一个类的成员函数,怎么定义?
...全文
80
8
打赏
收藏
如何让一个线程函数是一个类的成员函数
如何让一个线程函数是一个类的成员函数,怎么定义?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dbger
2008-06-18
打赏
举报
回复
[Quote=引用 7 楼 yueyucanyang 的回复:]
引用 3 楼 unsigned 的回复:
线程函数的参数传入这个类对象的this指针,里面再调用一个线程函数,不就可以了?
这种方法如何实现?
[/Quote]
//类头文件中申明:
public:
static UINT threadFun(LPVOID hd);
//CPP中:
UINT CXX1Dlg::threadFun(LPVOID hd)
{
CXXDlg *pDlg = (CXXDlg*)hd;
pDlg->......
return 1;
};
//调用
void CXX1Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
AfxBeginThread(threadFun, this);
}
yueyucanyang
2008-06-18
打赏
举报
回复
[Quote=引用 3 楼 unsigned 的回复:]
线程函数的参数传入这个类对象的this指针,里面再调用一个线程函数,不就可以了?
[/Quote]
这种方法如何实现?
liyinlei
2008-06-18
打赏
举报
回复
将该类的对象指针传入线程函数,在内部调用该类的成员函数
rookieme
2008-06-18
打赏
举报
回复
//类头文件中申明:
public:
static UINT threadFun(LPVOID hd);
//CPP中:
UINT CXX1Dlg::threadFun(LPVOID hd)
{
return 1;
};
//调用
void CXX1Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
AfxBeginThread(threadFun, NULL);
}
smneo
2008-06-18
打赏
举报
回复
static DWORD WINAPI Function(void* p);
僵哥
2008-06-18
打赏
举报
回复
线程函数的参数传入这个类对象的this指针,里面再调用一个线程函数,不就可以了?
yueyucanyang
2008-06-18
打赏
举报
回复
[Quote=引用 1 楼 CounterHack 的回复:]
定义成static的.
[/Quote]
声明的时候用不用也是静态的啊?
CounterHack
2008-06-18
打赏
举报
回复
定义成static的.
类
成员
函数
作为
线程
函数
使用
类
成员
函数
作为
线程
函数
使用 C++
类
成员
函数
使用时,都会隐式传递
一个
this指针给该
函数
,this指针指向该
类
的对象。
函数
体可以通过显示调用该指针或直接访问
类
内成员。 回调
函数
是用指针来调用的
函数
,最常使用的回调
函数
就是在创建
线程
时,以
一个
函数
指针以及传递给这个
函数
多个参数来调用
线程
函数
来创建
线程
。那么一般的
类
成员
函数
是不能用作回调
函数
的,因为库
函数
在使用回调
函数
时,都会传递指定的符合回调
函数
c++
线程
函数
(
类
成员
函数
作为
线程
函数
使用)
C++
类
成员
函数
使用时,都会隐式传递
一个
this指针给该
函数
,this指针指向该
类
的对象。
函数
体可以通过显示调用该指针或直接访问
类
内成员。 回调
函数
是通过指针调用的
函数
,最常使用的回调
函数
就是在创建
线程
时,以
一个
函数
指针以及传递给这个
函数
多个参数来调用
线程
函数
来创建
线程
。那么一般的
类
成员
函数
是不能用作回调
函数
的,因为库
函数
在使用回调
函数
时,都会传递指定的符合回调
函数
声明的的参数给回调
函数
,而
类
成...
当
线程
函数
为C++
类
成员
函数
时
很多时候我们在C++多
线程
开发时,都会或多或少遇到
线程
函数
为C++
类
中的某个
成员
函数
,此时可能会发生什么呢?你有可能会杂么做呢? 接下来我就为大家总结一下我在这方面走过的
一个
历程1.问题一记得我在之前在写
一个
udp传输文件的程序时,我就第一次遇到了
线程
函数
为C++
类
的
成员
函数
,当时遇到的问题,大概意思如下:#include
#include
#include
【C/C++笔记】之
类
成员
函数
作为
线程
函数
首先,普通
类
成员
函数
是不能够直接被当做
线程
的
成员
函数
使用。因为
类
中定义的
成员
函数
,编译器会给其加上this指针。 推荐
一个
论坛讨论过程:
成员
函数
作为
线程
函数
静态
成员
函数
: 把
成员
函数
声明成static
类
型,去掉this指针。但是静态
成员
函数
只能够访问静态成员变量。因此这种方式有一定的局限性。 友元
函数
: 把
线程
函数
设置成
类
的友元
函数
,这样线性
函数
就能访问
类
中的成员。 ...
C++
类
成员
函数
当
线程
函数
C++
类
成员
函数
使用时,都会隐式传递
一个
this指针给该
函数
,this指针指向该
类
的对象。
函数
体可以通过显示调用该指针或直接访问
类
内成员。 回调
函数
是通过指针调用的
函数
,最常使用的回调
函数
就是在创建
线程
时,以
一个
函数
指针以及传递给这个
函数
多个参数来调用
线程
函数
来创建
线程
。那么一般的
类
成员
函数
是不能用作回调
函数
的,因为库
函数
在使用回调
函数
时,都会传递指定的符合回调
函数
声明的的参数给回调
函数
,而
类
成员
函数
隐式包含
一个
this指针参数,所以把
类
成员
函数
当作回调
函数
编译时因为参数不匹配会出错。 std::th
进程/线程/DLL
15,466
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章