我怎样才能使用TFileOpenDialog回收内存?

问题描述 投票:1回答:1

在与窗体上的一个按钮,下列OnButton事件代码的简单的Delphi VCL应用:

procedure TForm1.Button1Click(Sender: TObject);
var
  OpenDialog : TFileOpenDialog;
begin
  OpenDialog := TFileOpenDialog.Create(nil);
  try
    OpenDialog.Options := OpenDialog.Options + [fdoPickFolders];
    if not OpenDialog.Execute then
      exit;
  finally
    OpenDialog.Free;
  end;
end;

当我执行我的对话框应用程序的内存使用量多于双打,但在我OpenDialog.Free内存不会被释放。(我使用ProcessExplorer看到我的应用程序使用多少内存)

我怎样才能让这个后,我释放对象内存利用率返回到它以前我所谓的对话?

delphi delphi-xe7
1个回答
3
投票

这是正常操作。内存管理器通常不会返回内存给系统,而是缓存起来以后再使用。此外,显示一个文件对话框,在第一次加载模块在过程中保持加载。

这是完全有可能的是,系统缓存等资源,以提高文件对话框的后续使用性能。

此行为将导致更好的性能。是你要能够强制内存返回到系统中,你的程序将执行速度变慢。

你的代码是正确的。有没有泄漏。还有为你解决没有问题。

© www.soinside.com 2019 - 2024. All rights reserved.