gpt4 book ai didi

delphi - CoFreeUnusedLibrariesEx 如何影响 delphi 中的 TTimers?

转载 作者:行者123 更新时间:2023-12-03 15:58:07 26 4
gpt4 key购买 nike

我们必须使用 CoFreeUnusedLibrariesEx 来修复使用 MSXML 库后堆未清除的错误引用这个链接: http://blogs.msdn.com/b/marcelolr/archive/2008/11/13/msxml-heaps-not-being-released.aspx

但这导致了 TTimers 的另一个问题,当 Delphi 应用程序弹起并在一段时间后再次显示时,该问题需要一段时间才能显示并消失。

此应用程序使用 TTimers 来安排其工作,例如运行 XML 转换。

问题是这样的:当 TTimer.Enable 被调用时,它会抛出一个错误,没有足够的计时器可用。我知道这是一个隐藏的错误,我必须弄清楚如何找到实际的错误。

这是一个只有一个计时器的单线程应用程序。

这是我查看的链接最常见的原因似乎是无效的窗口句柄 https://groups.google.com/forum/#!topic/borland.public.delphi.winapi/UrIskaFZggU

还有其他线程表明操作系统耗尽了定时器的资源,我不确定这是否与我相关。

我只是想了解 CoFreeUnusedLibrariesEx 和 TTimers 之间的交互是什么,它逐渐抢夺资源并让我们弹跳应用程序以使其正常工作。

我正在寻找一些方向,如何解决这个问题?

最佳答案

CoFreeUnusedLibrariesEx 不应影响 TTimers。但是,如果加载和卸载(有缺陷的)dll 泄漏了任何用户对象(这包括计时器、窗口句柄……),那么我可以想象您用完了用户对象。

使用 Windows 任务管理器并对其进行配置,以便它将在“进程”选项卡中显示“用户对象”。然后比较调用 CoFreeUnusedLibrariesEx 和不调用 CoFreeUnusedLibrariesEx 时的用户对象数量。

关于delphi - CoFreeUnusedLibrariesEx 如何影响 delphi 中的 TTimers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26361767/

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