如何正确关闭idHTTPServer以避免请求线程的内存泄漏?

时间:2019-04-04 13:26:20

标签: delphi indy

idHTTPServer为每个请求创建线程。有时,我的线程工作时间很长,因此当我关闭服务器时,它会由于意外的内存块而泄漏。有时一切正常,而不会发生内存泄漏,这取决于应用程序关闭的时间。为了避免这种情况,我尝试执行以下2个步骤。 1. Server.Active:= false或可能处于脱机模式。 2.终止所有请求线程// //不知道该怎么做((

有什么办法可以在我关闭应用程序之前终止工作线程?

我意识到这种对长时间运行的线程的处理方法,这是我自己的此类线程

procedure TMain.FormClose(Sender: TObject; var Action: TCloseAction);
var
  i: integer;
begin
  Stop();

  with LongTaskThreads.LockList() do
  try
    for i := 0 to Count - 1 do
    begin
      TLongTaskThread(Items[i]).FreeOnTerminate := false; // in other case they will be destroyed automatically
      TLongTaskThread(Items[i]).Free();
    end;
  finally
    LongTaskThreads.UnlockList();
  end;
end;

是否有任何类似的方法来请求idHTTPServer的线程?

关于斯坦,

0 个答案:

没有答案