由于我的 iOS 应用程序在经过几分钟的密集使用后终止(如果在调试器中运行,应用程序只是冻结而没有任何错误),我开始研究应用程序突然关闭的可能原因。(但总是在一段时间后首先这样做。)
我创建了许多设置为在完成后终止的短命线程。(我在构造函数中使用FreeOnTerminate := True。)但是,在Delphi IDE | 线程状态线程似乎在执行运行后仍然存在。
所以在调试窗口中,我有例如 100 个State=none和Status=unknown的线程。我是否正确假设这意味着线程没有完全释放/消失?
供参考,演示代码:
constructor TMyOnlineThread.Create(...) ;
begin
inherited Create(False);
//--
//...
//--
FreeOnTerminate := True;
end;
destructor TMyOnlineThread.Destroy;
begin
//...
inherited;
end;
procedure TMyOnlineThread.Execute;
begin
//--
// Single task. No while loop or anything like that.
//--
if (...) then
begin
if Assigned(FOnDone) then
Synchronize(MyCallBack)
;
end
;
end;
procedure someothercode;
begin
TMyOnlineThread.Create(...);
end;