GetTickCount vs. TTimer
Hola :)
Tengo el libro de los tomos de Delphi: "Nucleo del Api Win32" y en el capitulo 15 ( Funciones de temporización ) trae un ejemplo de como emular un temporizador. El ejemplo muestra un label parpadeando. El caso es que yo pense que tratando con el Api ( tal y como dice el libro ) se consigue una mejor ejecucion del programa, consumir menos recursos. Pues resulta que construyo el programita con dos opciones: 1ª - Mostrar el label parpadeando con un TTimer y 2ª - Mostrar el label parpadeando con el codigo que trae el libro utilizando GetTickCount. Cuando ejecuto el programa con el TTimer, voy al monitor del sistema y el uso de CPU no sube nunca del 1 % Cuando ejecuto el programa con GetTickCount, el uso de CPU no se mueve del 100 % !!!! :eek: ¿como es posible? se supone que deberia ser mas liviano. Este es el codigo completo:
Saludos !! |
El problema no es con la función GetTickCount, que tiene sus manías pero esta no es una de ellas. Lo que pasa es que la utilizas dentro de un bucle, si no haces algún tipo de espera dentro del bucle este termina usando la CPU al 100%. Una solución sencilla es hacer una pequeña espera dentro del bucle.
|
Gracias seoane, funciona muy bien :)
Ahora en el monitor de sistema consume exactamente igual GetTickCount que TTimer. No se mueve del 1% ( a veces 0 en ambos metodos ). Entonces, supongo que da igual uno q otro. ¿no? Saludos !! |
Cita:
|
ok, ya me ha quedado claro.
Gracias otra vez seoane :) Saludos !! |
La franja horaria es GMT +2. Ahora son las 17:24:44. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi