在我的代碼中,我使用了一個小數據存儲類,它在不同的地方創建。爲了避免內存泄漏和簡化工作,我想使用引用計數,所以我確實使用了引用計數,所以我確實刪除了我所有的手動調用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