开启辅助访问

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

指针传参与多线程的BUG反馈

查看数: 5321 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页 & lt;-左 右 ->
    组图打开中,请稍候......
发布时间: 2021-6-24 00:13

正文摘要:

数据经过转换成指针,这后传参给多线程以后,还原数据时得到的不是原数据BUG。还未找到很好的解决方法,如果有大神处理,希望能优化一下 “线程_启动”,这个太多人使用了。 临时解决方法可以参照我的测试源码。 附 ...

回复

heiioxiaojian   江苏省淮安市 发表于 2021-12-13 23:23:38
支持开源~!感谢分享
hxf1632   江苏省盐城市 发表于 2021-6-24 08:44:55
太多的人动不动就声称发现BUG,能不能换个方式,某某某怎么用???
揰掵佲   湖南省娄底市 发表于 2021-6-24 08:29:48
这个不算是BUG
线程_启动 封装的就是 CreateThread
这个API的第5个参数 dwCreationFlags  决定是否立刻执行线程.默认是立即执行
你可以认为 如果 线程_启动 后面还有别的代码,那么是同时运行的
在你代码的错误案例中.线程_启动 后面是没有任何代码  也就是说,直接结束了 子程序 非静态局部变量 是在子程序结束后 直接释放,所以,传过去的时候 局部变量已经没了! 才会乱码
比较简单的解决方法:
1.勾选静态
2.线程_启动 后面增加代码 最简单的 就是延迟(1) 但这个要求 被启动的线程头部 没有延迟 至少在获取内容之前 不能有延迟 或者说 启动的时候 延迟 大于 被启动的延迟
3.申请内存
4.内存文件

评分

参与人数 1好评 +1 精币 +2 收起 理由
辉神 + 1 + 2 这么厉害!必须给个红包鼓励下~

查看全部评分

小秋秋呀   广东省惠州市 发表于 2021-6-24 01:38:39
有方法啊,启动线程前把数据存到e2ee的存取队列里,然后线程启动了就弹出即可。
神女软件定制   重庆市重庆市 发表于 2021-6-24 01:31:04
线bug
前任   河南省焦作市 发表于 2021-6-24 00:53:43
这是你使用的问题呀
大司命   广东省广州市 发表于 2021-6-24 00:20:11

创建线程不一定马上就执行,所以,可能局部变量已经释放了,线程才运行,于是乎,取到的就是其他地址中的内容!所以,通常来说,我们用线程,都是自己申请内存,线程调用完,再释放内存~
大司命   广东省广州市 发表于 2021-6-24 00:18:25

局部变量会自释放!这句话很重要!
发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表