Ver Mensaje Individual
  #1  
Antiguo 05-05-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Reputación: 21
gluglu Va por buen camino
No termina ejecución Programa principal al usar un Thread

Hola amigos !

He implementado en mi formulario principal un Thread de la siguiente forma :

Código Delphi [-]
type
  TMainform = class(TForm)
  ....
  TMyThread = class(TThread)
  protected
    procedure Execute; override;
  public
  end;

var
  Mainform : TMainform;
 
implementation
 
uses ....

{$R *.nfm}
 
var
  MyThread : TMyThread;

procedure TMainform.Button1Click(Sender: TObject);
begin
  MyThread := TMyThread.Create(False);
  MyThread.FreeOnTerminate := True;
end;
 
procedure TMainform.Button2Click(Sender: TObject);
begin
  MyThread.Terminate;
end;

procedure TMyThread.Execute;
begin
 
  repeat
    ....
    Sleep(600000);  // 10 Minutes
 
  until Terminated;
 
end;

Lo que me pasa es que al intentar terminar mi aplicación, no se cierra la aplicación.

Si lo hago desde el propio Delphi, compilo y ejecuto la áplicación, al intentar terminarla se me queda el Delphi en modo 'de ejecución' y tengo que pulsar el botón Reset para terminar la aplicación.

Si ejecuto la aplicación desde Windows, parece que se cierra, pero algo queda abierto ya que si intento recompilar, el propio Delphi me dice que el EXE de la aplicación está en uso y no se puede escribir.

Qué estoy haciendo mal ?

Gracias y saludos a todos.
__________________
Piensa siempre en positivo !
Responder Con Cita