加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在delphi中查找关闭

发布时间:2020-12-15 09:37:10 所属栏目:大数据 来源:网络整理
导读:我亲眼目睹了一个Delphi 6程序,该程序在函数内部使用SysUtils中的FindFirst().这是一个运行数月并执行此操作数百次的程序.令人惊讶的是,没有调用FindClose()并且没有任何不好的事情发生. 如果我理解正确,该程序似乎泄漏文件句柄. (在TSearchRec记录中有一个T
我亲眼目睹了一个Delphi 6程序,该程序在函数内部使用SysUtils中的FindFirst().这是一个运行数月并执行此操作数百次的程序.令人惊讶的是,没有调用FindClose()并且没有任何不好的事情发生.

如果我理解正确,该程序似乎泄漏文件句柄. (在TSearchRec记录中有一个THandle条目.整个记录被丢弃,THandle没有关闭).事情是似乎没有问题.我使用了sysinternal的进程资源管理器,并且没有看到FindFirst找到的文件的打开文件句柄.

任何解释?

解决方法

如上所述,您的程序泄漏句柄.如果在没有随后调用FindClose的情况下调用FindFirst,则会泄漏句柄.做到这一点,程序将耗尽可用的句柄对象并失败.

你没有看到这表明你还没有达到极限.您没有观察到Process Explorer的泄漏,这表明您没有查看正确的信息.或者您可能完全错误地诊断了问题,并且未调用泄漏的代码,或者调用了FindClose,但您还没有找到它.

您应该修复代码,而不是花费更多时间来分析它.最重要的是,除非您通过调用FindClose来匹配对FindFirst的调用,否则您的程序会泄漏.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读