delphi - 如何正确关闭 idHTTPServer 以避免请求线程的内存泄漏?
问题描述
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 的线程?
问候,斯坦
解决方案
推荐阅读
- ms-access - Neo4j 日期转换和比较?
- php - Reg UPS API 地址验证
- javascript - 反应 useState 挂钩变量值不会在输入 onChange 事件时更新
- android - 片段中的回收站视图
- python - 使用python的数据库
- katalon-studio - 如何将生成随机ID的代码合并到数据文件中?
- vba - GetUserNameA 不检索最新的用户名
- android - 添加 Firestore 依赖项时,简单程序会出现“无法将请求的类放入单个 dex 文件中”
- python - 如果值相同,则反转返回相同的索引
- java - jackson-databind 抛出 NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper 即使它在阴影罐中