aLoNe IT Develop Studio

  • 首页
  • IT前沿
  • Web技术
  • 小姿势
  • 运维管理
  • 随笔
欢迎来到aLoNe.Adams.K的个人博客
  1. 首页
  2. 小姿势
  3. 正文

在Delphi下,使用线程向窗体发送动态数组数据的解决方法~

2016年9月23日 14989点热度 0人点赞 0条评论

最近写个小软件,需要在线程内获取json数据,然后将json内的一个items获取出来,存放到数组内,然后再将数组的数据发送到窗体,然后显示出来。

一开始使用的是老方法,创建动态数组,设置长度,然后装载数组数据,使用Sendmessage函数发送,Wparam是Integer(@Array[0])

在窗体,使用了Integer(Array)来接收数组指针,然后读取内容。

但是随后诡异的事情就接二连三出现,不断地报内存错误!!

这让我十分的蛋疼,检查了许久不知道哪里出错,于是我开始怀疑是SendMessage函数的问题。

果然注释掉几个相关代码后,不报错了。

那么,就需要换一个思路来做了。

首先,在窗体上创建动态数组,设置好长度。

然后将动态数组赋值给线程。因为动态数组的赋值其实是指针地址的赋值,也就是类似于对象的引用,所以赋值后两个变量是指向的同一个数组。由于窗体内的数组是全局变量,所以不用担心指针读取错误。

然后在线程内部解析获取到的json,赋值给动态数组,然后向窗体PostMessage一个消息,通知窗体开始接收处理动态数组的数据。

这样一来就不会出现那些指针错误了。

剩余的对于线程和窗体的操作同步,用临界资源、信号量等技术即可实现

标签: 暂无
最后更新:2016年9月23日

aLoNe.Adams.K

一只胖菜鸟!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章分类
  • IT前沿 / 3篇
  • Web技术 / 2篇
  • 小姿势 / 30篇
  • 运维管理 / 6篇
  • 随笔 / 4篇
标签聚合
Yum sqlite google 虚表 debian 反向代理 Orange Pi CentOS
最新 热点 随机
最新 热点 随机
Docker可用的镜像源 念 Github SSH 22端口连接超时解决办法 VSCode插件推荐 Docker内创建SQLServer服务 Cli模式下ThinkPHP框架Redis对象反序列化异常问题解决方案
Avalon2高德地图组件 念 Windows Server 2008 R2 负载平衡入门篇 关于Framaroot的PC端控制方法 Cli模式下ThinkPHP框架Redis对象反序列化异常问题解决方案 我的座右铭
友情连接
  • 李建伟博客
  • 不忘初心的简书
归档
  • 2024年6月 / 1篇
  • 2024年3月 / 1篇
  • 2024年1月 / 1篇
  • 2023年7月 / 3篇
  • 2023年6月 / 1篇
  • 2022年12月 / 5篇
  • 2022年6月 / 1篇
  • 2022年2月 / 3篇
  • 2020年11月 / 1篇
  • 2018年12月 / 1篇
  • 2018年5月 / 1篇
  • 2018年3月 / 1篇
  • 2017年11月 / 1篇
  • 2017年8月 / 1篇
  • 2017年3月 / 2篇
  • 2017年1月 / 1篇
  • 2016年9月 / 16篇

COPYRIGHT © 2022 aLoNe IT Develop Studio. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

陕ICP备19021656号-2