![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Te aconsejo que te informes sobre el procedimiento "Synchronize", porque al parecer no has entendido la dinámica ni el funcionamiento del mismo.
Todo lo que ejecutes en el procedimiento pasado a "Synchronize" se ejecuta en el hilo principal, logrando una sincronización de todos los hilos. Por ello se produce el "cuelgue" de tu aplicación. Ese cuelgue se debe al procedimiento "Sleep", el cual bloquea al hilo durante 1000 milisegundos. Tan solo debes alterar el código como te indico a continuación, ejecutando dicho procedimiento dentro del "Execute" del hilo:
__________________
"La recompensa de una buena acción está en haberla hecho" |
|
#2
|
||||
|
||||
|
Gracias
y si lo bloquea por que lo volviste a poner??
Saludos
__________________
"Los unicos que no se equivocan son aquellos que no intentan hacer algo." Iván Caballero Cano... [email protected] |
|
#3
|
||||
|
||||
|
La cuestión no es si ponerlo o no, la cuestión es dónde ponerlo.
Tu error era colocarlo dentro del procedimiento que ejecutas mediante Synchronize(). Creo que debes releer mi respuesta anterior de nuevo, con detenimiento. Un saludo.
__________________
"La recompensa de una buena acción está en haberla hecho" |
|
#4
|
||||
|
||||
|
Pregunta
Tienes razon, ya lo arregle,
La onda es que quiero hacer un auto arranque de un programa para que se actualize solo a la nueva version y luego arranque, para tal motivo necesitaba de hilos para que al ir bajando el programa con otro hilo fuera consultando el tamaño del archivo bajado, ahora la bronca es que el hilo que mide el tamaño del archivo bajandose solo funciona en los primeros momentos de la descarga, y luego cuando termina de descargar el archivo, vuelve a recuperar su funcion el hilo que da el tamaño. Es normal?
__________________
"Los unicos que no se equivocan son aquellos que no intentan hacer algo." Iván Caballero Cano... [email protected] |
|
#5
|
||||
|
||||
|
La funcion que uso para obtener el tamaño es esta:
Código:
function tamanoFichero2 (sFileToExamine: string) : Integer;
var
SearchRec: TSearchRec;
sgPath: string;
inRetval, I1: Integer;
begin
sgPath := ExpandFileName(sFileToExamine);
try
inRetval := FindFirst(ExpandFileName(sFileToExamine), faAnyFile, SearchRec);
if inRetval = 0 then
I1 := SearchRec.Size
else
I1 := -1;
finally
SysUtils.FindClose(SearchRec);
end;
Result := I1;
end;
Creo el hilo que va bajar el archivo y luego el hilo que va a ir midiendolo Código:
midescarga:=TDescarga.Create(false);
miDiceElTamanio:=TDiceTamanio.Create(false)
y luego ya se frenaz y cuando termina el otro entonces ya se recupera. Algo quizas haga mal...que sera? Alguien lo sabe? La parte donde declaro los objetos es esta: Código:
TDescarga = class(TThread)
private
protected
procedure Execute; override;
end;
TDiceTamanio = class(TThread)
private
protected
procedure Execute; override;
procedure llamaDecirTamanio;
function tamanoFichero2 (sFileToExamine: string) : Integer;
end;
__________________
"Los unicos que no se equivocan son aquellos que no intentan hacer algo." Iván Caballero Cano... [email protected] |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| ¿Como paso el alias a un programa que corre en un PC sin delphi ? | Parsec | Conexión con bases de datos | 4 | 06-06-2008 01:12:24 |
| Como usar dbExpress en hilos ? | rolandoj | Conexión con bases de datos | 7 | 05-03-2008 21:12:32 |
| cuando llamo ejecutar un hilo dentro del proceso del hilo no lo hace | robertosc | Varios | 1 | 14-08-2007 22:11:09 |
| Como grabar mientras la aplicacion corre? | principiante22 | Varios | 3 | 01-07-2007 19:12:01 |
| Como detectar el S.Operativo donde corre Firebird | pcicom | Conexión con bases de datos | 2 | 23-06-2005 23:16:30 |
|