gpt4 book ai didi

delphi - 如何释放 Delphi Prism 中对象的数组列表?

转载 作者:行者123 更新时间:2023-12-03 04:34:54 26 4
gpt4 key购买 nike

我需要释放存储在 ArrayList 中的对象列表。我知道你可以在Delphi中调用Free procedure,但是在Delphi Prism中没有free procedure。我不仅想从列表中删除对象,还想将其从内存中释放。

例如,假设我有以下类(class)

TheClass = Class
private
theStr:String;
protected
public
end;

method TheForm;
begin
TheArrayList:=new ArrayList;
end;

要添加对象,我会这样做:

method TheForm.AddToList;
var
tmpObj:TheClass;
begin
tmpObj := new TheClass;
TheArrayList.Add(tmpObj);
end;

要从列表中删除对象,我会这样做,但没有免费的程序。

method TheForm.DeleteFromList;
var I:integer;
begin
for I:=0 to theArrayList.count-1 do
begin
theClass(theArrayList[I]).free; <-------I know this doesnt work.
theArrayList.RemoveAt(I);
end;
end;
end;

Delphi Prism 中如何释放对象列表?

谢谢

最佳答案

由于您的类没有占用任何非托管资源(例如文件、窗口句柄、数据库连接等),因此您只需让 .net 垃圾收集器在认为时机成熟时释放内存即可。

尝试强制垃圾收集器提前运行通常会导致性能比简单地让它完成工作更差。

如果您有一个包含非托管资源的类,那么您应该 follow the IDisposable pattern .

关于delphi - 如何释放 Delphi Prism 中对象的数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7320894/

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