在delphi中查找关闭

在delphi中查找关闭,第1张

概述我亲眼目睹了一个Delphi 6程序,该程序在函数内部使用SysUtils中的FindFirst().这是一个运行数月并执行此 *** 作数百次的程序.令人惊讶的是,没有调用FindClose()并且没有任何不好的事情发生. 如果我理解正确,该程序似乎泄漏文件句柄. (在TSearchRec记录中有一个THandle条目.整个记录被丢弃,THandle没有关闭).事情是似乎没有问题.我使用了sysinte 我亲眼目睹了一个Delphi 6程序,该程序在函数内部使用SysUtils中的FindFirst().这是一个运行数月并执行此 *** 作数百次的程序.令人惊讶的是,没有调用FindClose()并且没有任何不好的事情发生.

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

任何解释?

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

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

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

总结

以上是内存溢出为你收集整理的在delphi中查找关闭全部内容,希望文章能够帮你解决在delphi中查找关闭所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1268108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存