SOS!(高分求助,在线程中操作数据库,使用AdoQuery控件,导致 内存泄漏 ,分数不够再加!!!)SOS!

fj_abin 2005-05-30 06:02:34
先程序实现步骤:
1、使用TIdUDPServer控件接收外部的发送来的UDP数据;
2、在TIdUDPServer控件OnUDPRead 事件使用TMemoryStream 接收下数据
3、同时启动线程,处理接收的数据(TMemoryStream对象)
4、在线程结束时释放TMemoryStream,而且线程的构造函数已经设置FreeOnTerminate := True;

但是程序运行时系统可用内存在不断增加,最终机器死机:(
恳求各个大侠伸出援助之手,小弟感激涕临!
数据库为msde(mssqlserver 的简易版)
...全文
111 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fj_abin 2005-06-03
  • 打赏
  • 举报
回复
问题解决了,通过几天使用TurboPower Sleuth CodeWatch 测试工具测试,分析,终于查出错误了,是由于线程间中对同一个文件写时产生竞争,导致线程无法正常结束,最终导致内存暴涨。
MyCrooner 2005-05-31
  • 打赏
  • 举报
回复
up
gyf 2005-05-31
  • 打赏
  • 举报
回复
直接贴出代码
fj_abin 2005-05-31
  • 打赏
  • 举报
回复
请各个大侠对这个问题有兴趣的留下你们的邮箱,我给你们发送代码研究一下,小弟在此先谢谢啦!
ten_years_ago 2005-05-30
  • 打赏
  • 举报
回复
所有创建的对象应该在用完后都要释放,这样内存的变化应该是动态增减的,最大占用值应该是稳定的.
我估计,你创建的某个对象在用完以后没有释放.没有代码,很难给出祥细的答案.
此种现象特别容易出现在多次反复调用线程中.
tompaz 2005-05-30
  • 打赏
  • 举报
回复
这样的话看不出问题来,估计是线程里的处理函数有问题吧
上代码把

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧