【发布时间】:2020-07-16 09:24:39
【问题描述】:
“应用程序”是 VCL 的一部分,因此不是线程安全的(可能是在维护它所拥有的非线程安全组件列表)。
我正在处理的项目有几个实例,其中 Application 设置为 Owner,而 Self 不是一个选项(类方法)。 我想传递“nil”,因为该变量在此函数结束时被释放。
假设有人忘记释放应用程序拥有的变量:
当应用程序关闭时,内存被释放。 但我也读到 Windows 会跟踪分配给每个进程的内存。因此,理论上,如果一个 nil 拥有的变量没有被释放,Windows 会在应用程序/进程终止时释放它。
那么,将所有者设置为 Application 而不是 Nil 有什么好处?
以下问题讨论了释放 nil 拥有的 var 的责任,但停在那里:
【问题讨论】: