在我的代码中,我使用了一个小数据存储类,它在不同的地方创建。为了避免内存泄漏和简化工作,我想使用引用计数,所以我确实使用了引用计数,所以我确实删除了我所有的手动调用TFileInfo.Free的参数。不幸的是Delphi报告了很多内存泄漏。搜索,所以我发现了以下问题,解释为什么这不起作用:对象的引用计数
Why aren't descendants of TInterfacedObject garbage collected?
有提出有一种解决方法,但它需要我(至少如果我得到它的权利)编写自定义界面IFileInfo并为它提供了许多我想避免的获得者和制定者。
编辑我应该补充说我将创建FileInfo对象插入到两种不同类型的散列表中:一种从TBucketList降序,另一种是Codegear论坛的散列映射实现。在内部,它们都是用户指针,所以情况与其他问题一样。
是否有任何其他的可能性使Delphi中的对象使用引用计数?
感谢您的详细解答!虽然我不完全理解。我仍然需要调用TRefCountObject.Free的权利?或者我如何使用它? – jpfollenius 2009-04-23 10:42:32
增加了一些使用信息。 – 2009-04-23 10:56:34
所以我仍然必须确保每个对象至少调用一次Free,对吧?并没有办法避免这种情况? – jpfollenius 2009-04-23 11:00:35