Есть класс TIdThread (Входит в состав Indy9).
Имеется глобальная переменная, в которой содержится класс-наследник TIdThread. Требуется немедленно остановить поток и освободить (Free) его.
но это не получается: Если использовать методы Stop или Terminate, то поток завершится, когда выполнится до конца, а нужно немедленная остановка.
Если использовать такой код:
Код:
if Assigned(LoginThread) then
begin
if LoginThread.Stopped=False then
begin
LoginThread.Suspended:=True;
LoginThread.Terminate;
end;
LoginThread.Free;
end;
То поток немедленно завершится, но программа зависнет на строчке LoginThread.Free;