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.
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.
otra seria probar con el indy 10.
si usas indy 9.. con la version 10 tal vez eso ya no pase.
Si tienes algun synchronized, vigila de no haber metido codigo "lento" ahi, ya que pierdes las "propiedades" de los hilos.
Saludos.
vBulletin v3.6.8, Derechos ©2000-2013, Jelsoft Enterprises Ltd.