gpt4 book ai didi

delphi - 在delphi中查找关闭

转载 作者:行者123 更新时间:2023-12-03 15:20:57 25 4
gpt4 key购买 nike

我亲眼目睹了一个 Delphi 6 程序在函数内部使用 SysUtils 中的 FindFirst() 。这是一个运行数月并执行此操作数百次的程序。令人惊讶的是,FindClose() 没有被调用,也没有发生任何不好的事情。

如果我理解正确的话,该程序似乎泄漏了文件句柄。 (在TSearchRec记录中有一个THandle条目。整个记录被丢弃并且THandle不关闭)。问题是好像没有什么问题。我使用 sysinternal 形式的进程资源管理器,发现 FindFirst 找到的文件没有打开的文件句柄。

有什么解释吗?

最佳答案

如上所述,您的程序泄漏了句柄。如果您调用 FindFirst 而没有随后调用 FindClose,则会泄漏句柄。如果做得足够多,程序将耗尽可用的句柄对象并失败。

如果您没有看到该信息,则表明您尚未达到限制。如果您没有从 Process Explorer 中观察到泄漏,则表明您没有查看正确的信息。或者您可能完全错误地诊断了问题,要么没有调用泄漏的代码,要么调用了 FindClose 但您还没有找到它。

您应该修复代码,而不是花费更多时间来分析这个问题。最重要的是,除非将对 FindFirst 的调用与对 FindClose 的调用相匹配,否则程序就会泄漏。

关于delphi - 在delphi中查找关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36501336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com