PDA

Ver la Versión Completa : Hacer que la aplicación "respire"


Khronos
18-01-2009, 18:06:59
Hola, estoy utilizando el componente TidHttp con su método Post y funciona correctamente pero la aplicacion tarda unos segundos en volver a responder. Probe añadiendo en el evento OnWork


application.ProcessMessages;


Pero no hace efecto. Busqué en google y leí algo del componente TidAntiFreeze pero no me funciona ¿?


Saludos y gracias.

JXJ
18-01-2009, 18:17:35
podrias usar hilos. y la accion que realizas, ejecutarla en un hilo.

Khronos
18-01-2009, 18:23:08
Ya lo hice pero nada, sigue quedándose bloquedado durante unos segundos y solo pasa al descargar el contenido del html.


type
THttpThread = class(TThread)
private
Http: TIdHttp;
FPage: string;
FIndex: integer;
FBusqueda: string;
procedure UpdateSearch;
procedure OnWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer);
procedure OnWorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer);
procedure OnWorkEnd(ASender: TObject; AWorkMode: TWorkMode);
public
constructor Create;
procedure Execute(const Busqueda: string; index: integer); reintroduce;
end;



Saludos.

JXJ
18-01-2009, 20:14:11
otra seria probar con el indy 10.

si usas indy 9.. con la version 10 tal vez eso ya no pase.

xEsk
18-01-2009, 22:54:39
Si tienes algun synchronized, vigila de no haber metido codigo "lento" ahi, ya que pierdes las "propiedades" de los hilos.

Saludos.