2012-04-03 157 views
1

在某个时间点,我必须使用Application.Terminate终止在Delphi XE2中开发的应用程序。Application.terminate是否会导致内存泄漏?

我想确认一下,是否会因此造成任何内存丢失? 如果是,我需要照顾所有可能的场景? 以及如何解决它们?

回答

5

不管你如何关闭进程,内存都不会泄漏。当进程关闭时,操作系统回收进程拥有的所有内存。

现在,Application.Terminate导致有序关闭,从Application对象开始。所有由Application拥有的物品将被销毁。如果这些对象又拥有其他对象,则拥有的对象将被销毁。但是,就内存泄漏而言,进程不可能终止并泄漏内存。一个进程有可能终止并将某些资源置于一个不明确的状态,这就是为什么通常建议以一种有序的方式终止一个进程的原因。

+0

1.如何以有序的方式终止进程? 2.在打开数据库连接的情况下,该Application.terminate的行为如何?它会照顾这一点吗?它会导致任何问题? – Dev 2012-04-19 09:07:18

+0

'Application.Terminate'会有序关闭。如果代码在关闭期间关闭它,数据库连接将被关闭。 – 2012-04-19 09:18:38

+0

感谢您的快速回复。如果有许多具有开放连接的查询组件,并且我的代码在终止之前没有处理它,会怎么样?会产生任何问题吗? – Dev 2012-04-19 10:12:37