aLoNe IT Develop Studio

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

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

2016年9月23日 3917点热度 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篇
  • 小姿势 / 24篇
  • 运维管理 / 5篇
  • 随笔 / 3篇
标签聚合
反向代理 虚表 sqlite debian Orange Pi CentOS Yum google
最新 热点 随机
最新 热点 随机
团队开发规范培训(代码管理篇) 团队开发规范培训(序) 忆 我的座右铭 DevilBox全程操作记录 香橙派Orange Pi Zero基于Debian进行反向代理配置
AES中Java加密PHP解密的坑。。。 改写历史,永久删除git库的物理文件 团队开发规范培训(代码管理篇) Git下获取更新文件方法 使用WSL的Ubuntu18.04安装oneinstack需要注意的相关事项及步骤! CentOS8停止更新后YUM使用404问题处理办法
友情连接
  • 李建伟博客
  • 不忘初心的简书
归档
  • 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