Escolar Documentos
Profissional Documentos
Cultura Documentos
quedan encapsulados en Delphi en esta sencilla clase. Para crear un hilo de ejecucin basta
heredar de la clase TThread y sobrecargar el mtodo Execute:
type
THilo = class(TThread)
procedure Execute; override;
end;
A este formulario lo he llamado FPrincipal. En la interfaz del mismo voy a definir la clase
TContador que va a heredar de un hilo TThread:
type
TContador = class(TThread)
dwTiempo: DWord;
iSegundos: Integer;
Etiqueta: TLabel;
constructor Create; reintroduce; overload;
procedure Execute; override;
end;
begin
inherited Create(True); // llamamos al constructor del padre (TThread)
dwTiempo := GetTickCount;
iSegundos := 0;
end;
Despus de crear el hilo le pasamos la etiqueta que tiene que actualizar y le decimos
mediante la propiedad FreeOnTerminate que se libere de memoria automticamente al
terminar la ejecucin del hilo.
Despus llamamos al mtodo Resume que lo que hace internamente es ejecutar el
procedimiento Execute de la clase TThread que tendr este cdigo:
procedure TContador.Execute;
begin
inherited;
// Contamos hasta 10 segundos
while iSegundos < 10 do
// Han pasado 1000 milisegundos?
if GetTickCount - dwTiempo > 1000 then
begin
// Incrementamos el contador de segundos y actualizamos la etiqueta
Inc(iSegundos);
Etiqueta.Caption := IntToStr(iSegundos);
dwTiempo := GetTickCount;
end;
end;
gustado mucho esta funcin porque miestras se est ejecutando no podemos hacer
absolutamente nada.
Eso ocurrir al ejecutar el programa y cuando llegue el contador a 10:
Podemos ver como va la ejecucin del hilo en la ventana inferior de Delphi si estamos
ejecutando el programa en modo depuracin:
Como puede verse en las lneas en rojo, el hilo que hemos creado tiene el ID 3736 que no
tiene nada que ver con el hilo primario:
Ejemplo:
http://www.hackerdude.com/courses/delphi/Cap011.1.html
Referencia
http://delphiallimite.blogspot.mx/2009/05/los-hilos-de-ejecucion-1.html
http://delphiallimite.blogspot.mx/2006/07/cmo-crear-un-hilo-deejecucin.html
http://www.clubdelphi.com/foros/showthread.php?t=79939
http://www.thecoldsun.com/es/content/12-2008/programacion-multihilo-endelphi-tthread-y-sincronizacion-basica
http://trabajandocondelphixe.blogspot.mx/2012/03/ejemplo-aplicacion-conbase-de-datos-de.html