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?
С уважением, Стэн