Если я создаю (приостановленный) поток из основного потока как такового:
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;
Итак, я думаю, как мне освободить поток без доступа к дескриптору формы?
Спасибо