jus*_*tyy 2 delphi finalization
由于该过程将被操作系统杀死,并且所有分配的内存都将被回收,是否可以在单元定型部分中释放对象/资源?
例如,
unit Threading;
interface
implementation
var threadpool: ThreadPool;
initialization
threadpool := ThreadPool.Create;
finalization
threadpool.Free; // is it OK to remove this?
end.
Run Code Online (Sandbox Code Playgroud)
由于该过程将被操作系统杀死,并且所有分配的内存都将被回收,是否可以在单元定型部分中释放对象/资源?
是的,可能是.系统将在进程终止时清理资源.
但是,有几个附带条件:
如果Free从最终化部分中删除该调用,则threadpool其所有子对象将始终存在于应用程序的内存泄漏报告中.那么很难找到真正的内存泄漏.
某些对象可能会在destroy上执行日志记录操作或删除锁定文件.因此,执行所有析构函数可能是必要的.
作为(Delphi)开发人员,您应该始终注意清理堆.否则,您可能会失去对内存管理的控制.它可能会花费你或你的公司很多钱来控制它.
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |