0

私の iOS アプリは (デバッガーで実行している場合は、アプリがエラーなしでフリーズするだけで) 数分間の集中的な使用の後に終了するため、アプリが単に突然終了する可能性のある理由を調べ始めました。(しかし、常にしばらくしてから最初に実行してください。)

終了時に終了するように設定された、存続期間の短いスレッドを多数作成します。(私はコンストラクタでFreeOnTerminate := Trueを使用しています。)ただし、Delphi IDE では | 実行が実行された後、スレッドが生きているように見える スレッドステータス。

したがって、デバッグ ウィンドウには、たとえばState=noneおよびStatus=unknownの 100 のスレッドがあります。スレッドが完全に解放されていない/なくなっていないことを意味すると思いますか?

参考までに、デモコード:

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;
4

0 に答える 0