线程传递结构体参数
来源:互联网 发布:大学生软件实训基地 编辑:程序博客网 时间:2024/06/16 04:32
声明一个结构体:
struct Info
{
CString strInfo;
int nCopunt;
};
在CPP文件在创建一个线程:
Info info; info.nCopunt = 100; CString str; str = "Hello"; info.strInfo = str; HANDLE hThread = CreateThread(NULL, 0, ThreadProc,&info,0,0);
线程函数:
DWORD WINAPI CMy01demoDlg::ThreadProc(PVOID pParam){ Info* pInfo = (Info*)pParam; return 0;}
按照上面的写法,会发现在线程函数当中 pInfo获取的信息是乱码;
原因:
**创建线程之后已经过了info这个变量的作用域,在线程函数获取的时候,Info变量已经不存在了;
为了保证线程访问数据争取,必须保证了info的空间在堆上,pInfo指向的数据也放堆上,保证线程访问的时候数据有效;**
改进方法:
1:Info info;放到成员变量(这一种个人感觉 如果并发量大,可能info成员变量的值在线程访问时已经被覆盖,不过计算机的性能应该可以处理过来;)
2:Info* info = new Info;变量要在堆上;
一种是指向成员变量(保证在传递完以前不销毁),另外就是传递的结构体自己有这个内存存储空间
1 0
- 线程传递结构体参数
- CreateThread创建线程传递结构体参数
- CreateThread创建线程传递结构体参数
- 通过结构体传递参数给线程
- 通过结构体传递参数给线程
- (VC/MFC)通过结构体传递参数给线程
- VC/MFC 通过结构体传递参数给线程
- (VC/MFC)通过结构体传递参数给线程
- 线程传递结构体参数(Segmentation fault (core dumped))
- VC线程学习之----CreateThread创建线程传递结构体参数
- 线程函数传递结构体
- JNI 传递结构体参数
- JNI 传递结构体参数
- 结构体作为参数传递
- JNI 传递结构体参数
- JNI 传递结构体参数
- 线程中传递参数
- 给线程传递参数
- CSS书写规范、顺序
- ionic入门教程第六课-从服务器请求数据的几种方式$http.get()、jsonp()分别和callback、$q的组合
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- QT Creator 如何建立动态链接库和使用的方法(详细的图文教程以及错误的讲解)
- 文章标题
- 线程传递结构体参数
- 二进制中1的个数
- Mybatis最入门---Mapper文件配置详解(上)
- ViewPagerTransforms
- [leetcode]98. Validate Binary Search Tree -- JavaScript 代码
- 关于html中select选中的问题
- Qt QtableWidget居中显示图片
- js给select赋值
- SparkStreming中的Transformations和状态管理