Saludos, tengo una aplicación en la que corro un thread, puedo pausarlo y continuarlo a gusto, incluso terminarlo y liberarlo, pero tengo el siguiente problema, al querer cerrar mi formulario principal necesito checar si el thread se está ejecutando o sigue vivo, es decir si se ha liberado o no,
este es el código:
Código Delphi
[-]
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Assigned(MThread) then
if MessageDlg('Está corriendo el thread de copiado.' + #13#10 + '¿Desea cerrar de todas maneras la aplicación?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
MThread.Suspend;
Sleep(3000);
MThread.FPause:= True;
CanClose:= True
end
else
CanClose:= False
end;
Pero aunque el thread ha dejado de ejecutarse y su FreeOnTerminate:= True pareciera que se queda "vivo", pues Assigned(MThread) me devuelve verdadero, probé con MThread=nil y me devuelve falso... ¿algo estoy haciendo mal?
Gracias de antemano por su ayuda.
Nota: Alguien puede ayudarme a cambiar el título, es que es invertí las letras en saber y puse asber... gracias