Когда освобождать поток вручную

Если я создаю (приостановленный) поток из основного потока как такового:

  with TMyThread.Create(True) do
  begin
    OnTerminate := ThreadTerminated;
    FreeOnTerminate := False;
    Start;
  end;

Как мне освободить этот экземпляр после его завершения? (т.е. процедура Execute завершена - предположим, что я зафиксировал исключения).

Этот правильный способ уничтожения ссылки на объект tthread показывает способ (через процедуру PostMessage), который работает нормально и имеет смысл. Однако что, если я создаю поток и у меня нет дескриптора формы или чего-то еще, где я могу вызвать процедуру PostMessage. например, я создаю поток в классе, производном непосредственно от TObject?

TMyClass = class
public
  procedure DoSomething;
end;

TMyClass.DoSomething;
begin
      with TMyThread.Create(True) do
      begin
        OnTerminate := ThreadTerminated;
        FreeOnTerminate := False;
        Start;
      end;  
end;

Итак, я думаю, как мне освободить поток без доступа к дескриптору формы?

Спасибо

8
задан Community 23 May 2017 в 11:51
поделиться