类成员函数作为线程函数的几种方法
来源:互联网 发布:linux 端口映射工具 编辑:程序博客网 时间:2024/04/27 23:46
首先,类成员函数是不能够直接被当做线程的成员函数使用。
原因是,类中定义的成员函数,编译器会给其加上this指针。
解决方案有如下:
1.把成员函数声明成static类型,去掉this指针。但是这种方法有缺陷,以为在类中,静态成员函数只能够访问静态成员变量。因此不推荐这种方式。
2.把线程函数设置成类的友元函数,这样线性函数同样可以访问类中的成员变量,这种方式比较常用。
例如:
#include "windows.h" #include <process.h>class ExampleTask { public: friend void taskmain(LPVOID param); void StartTask(); int value;};void taskmain(LPVOID param) { ExampleTask * pTaskMain = (ExampleTask *) param; //通过pTaskMain指针引用 } void ExampleTask::StartTask() { _beginthread(taskmain,0,this); } int main(int argc, char* argv[]) { ExampleTask realTimeTask; realTimeTask.StartTask(); return 0; }
0 0
- 类成员函数作为线程函数的几种方法
- 类成员函数作为线程函数的方法
- C++中类成员函数作为回调函数的几种方法
- 用类的非静态成员函数作为线程入口函数的方法--转
- 类成员函数作为线程函数
- 类成员函数作为线程函数
- 类成员函数作为线程函数
- 类成员函数作为线程函数
- 类成员函数作为线程函数
- 类成员函数作为线程函数
- 类成员函数作为线程函数
- 类成员函数作为线程函数
- 类成员函数作为线程函数使用
- MFC类成员函数作为线程函数的解决办法
- MFC类成员函数作为线程函数的解决办法
- 类的非静态成员函数作为线程函数
- 类的成员函数作为线程入口函数
- 类成员函数作为CallBack函数时3种访问类成员变量的方法
- iOS编程------集合视图之瀑布流WaterFlowLayout
- Swift简单语法
- Java集合总结之Collection整体框架
- iOS开发分分钟搞定C语言 —— 函数
- Google Spanner和F1介绍
- 类成员函数作为线程函数的几种方法
- [深入理解Java虚拟机]第三章 垃圾收集器及相关参数
- java io 读写对象
- 第6周项目1 - 建立顺序栈算法库
- 初学NPOI
- 学习计划
- 深入理解按位异或运算符
- iOS开发分分钟搞定C语言 —— 进制
- leetcode206 Reverse Linked List