mosco,
Cita:
Empezado por mosco
...¿Se puede estar mucho tiempo en un bucle while a la espera?...Lo he probado y el programa se cuelga...
|
En términos absolutos
Si, en términos relativos
depende de los requerimientos de la aplicación.
Como se menciono en el
Msg #2 el uso del control TTimer
permite de forma eficiente programar la ejecución de tareas en un intervalo de tiempo determinado, sin embargo también es posible hacerlo mediante una técnica denominada
Espera Activa.
Revisa este código:
Código Delphi
[-]
procedure WaitInterval(Lapse : LongWord);
var
Start, Stop : Cardinal;
begin
Start := GetTickCount;
Repeat
Stop := GetTickCount;
Application.ProcessMessages;
Sleep(10); until (Stop - Start) >= Lapse;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WaitInterval(60000);
ShowMessage('Fin de WaitInterval');
end;
El código anterior
permite ejecutar un proceso luego de haber transcurrido 1 minuto sin bloquear la aplicación, puede ser útil como complemento del
Procedure Sleep.
Espero sea útil
Nelson.