Ver Mensaje Individual
  #1  
Antiguo 21-08-2012
ppalmamichi ppalmamichi is offline
Miembro
 
Registrado: abr 2005
Posts: 24
Reputación: 0
ppalmamichi Va por buen camino
Unhappy Error: terminate thread timeout

hola:

tengo una plicacion cliente servidor, el cliente lo tengo programado para que cuando se desconecte vuelva a interntar conectarse.
mi problema surge cuando cierro el servidor, me envia el error "terminate thread timeout" y se queda colgado. antes de cerrar el servidor envio una instruccion a todos los clientes conectados para que se desconecten y realicen una pausa de 3 seg. para volver a intentar conectarse.

de antemano agradesco su ayuda...

===SERVIDOR===
Código Delphi [-]
procedure TFMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin  
   EnviaComando('DESCONECTAR','','');
   Server.Active := False;
   Clients.Free;
   LimpiaTabla;
   FDM.Tequipos.close;
   FDM.Access.Close;
   Application.processMessages;   
   application.Terminate;
end;

===CLIENTE===
Código Delphi [-]
procedure TFMain.ClientDisconnected(Sender: TObject);
begin
   sleep(3000);
   Conectar;
end;

procedure TFMain.Conectar;                
begin
  While not Client.Connected do
  begin
    try
      Client.Connect(1000);  // in Indy < 8.1 leave the parameter away
      ClientHandleThread := TClientHandleThread.Create(True);
      ClientHandleThread.FreeOnTerminate:=True;
      ClientHandleThread.Resume;
    except
//      on E: Exception do MessageDlg ('Error while connecting:'+#13+E.Message, mtError, [mbOk], 0);
    end;
end;
end;

procedure TFMain.Desconectar;
begin
    ClientHandleThread.Terminate;
    Client.Disconnect;
end;
__________________
e un mondo dificile
Responder Con Cita