delphi - 释放TMemoryStream不会导致内存泄漏吗?

标签 delphi

我正在将 TWebModule 与 Apache 一起使用。我遇到内存泄漏问题。下面的代码中是否没有释放ImageStream内存泄漏?如果我释放它,我就会遇到访问冲突。

procedure TWebModule1.WebModule1WebActionItem8Action(Sender: TObject;
    Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  var
    RecNo: Integer;
    ImageStream: TmemoryStream;
  begin
    RecNo := StrToInt(Request.QueryFields.Values['RecNo']);
    Master.MoveBy(RecNo - Master.RecNo); // go to right record
    ImageStream := TMemoryStream.Create;
    with TGraphicField.Create(Master) do
    try
      FieldName := 'Graphic';
      SaveToStream(ImageStream)
    finally
      Free
    end;
    ImageStream.Position := 0; // reset ImageStream
    Response.ContentType := 'image/jpg';
    Response.ContentStream := ImageStream;
    Response.SendResponse
  end;

最佳答案

来自here :

If you use the ContentStream property, do not free the stream yourself. The Web response object automatically frees it for you.

话虽如此,为什么还要涉及 ImageStream 呢?为什么不直接使用:

Response.ContentStream := TMemoryStream.Create

并将图像直接保存到该流中?

关于delphi - 释放TMemoryStream不会导致内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3483831/

相关文章:

multithreading - 线程更新 GUI

delphi - 发生日期格式故障 - 可能的原因以及最可能的预防或消除方法?

Delphi 6 - 当我多次编译时错误消失

delphi - 在哪里可以找到基本的几何例程?

delphi - 使用 Devexpress VCL 13.1.2 时出现 Stackoverflow 错误(无限循环)

delphi - 在Delphi编译的可执行文件中更改图像

json - 如何在 Delphi 中漂亮地打印 JSON?

delphi - 如何防止Delphi意外修改其DPR(项目源)

德尔福XE2 : Invisible Firemonkey controls in VirtualBox

delphi - 在Firemonkey上,如何在 Canvas 上绘制蒙版位图?