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 的简易版)
...全文
92 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
这样的话看不出问题来,估计是线程里的处理函数有问题吧
上代码把
回复
相关推荐
发帖
数据库相关
创建于2007-08-02

2455

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2005-05-30 06:02
社区公告
暂无公告