100¬ de consumo de CPU

Delphi

15/04/2005

Alguém sabe por que alguns programas quando rodam certas rotinas ficam com 100¬ de uso de CPU? Alguém sabe como amenizar isso? Eu poderia usar Threads?

Estou fazendo um programa que varre o registro do Windows, mas o chato é que ele fica com esses malditos 100¬.

Mas o pior é outro programa de um colega meu, que roda como um serviço e fica pingando para um servidor de tempos em tempos. Mas ele fica direto com esses 100¬, precisávamos tirar isso. Como os outros programas fazem coisas e não ficam assim?


Renatosilva

Renatosilva

Curtidas 0

Respostas

Elciodramos

Elciodramos

15/04/2005

E ai galera

Tenho uma aplicacao com uma Thread e consegui resolver este problema com Sleep(1) cada vez que e executada.

Fora a Thread outra coisa que faco para resolver e application.processMessages em repeticoes tipo WHILE


GOSTEI 0
Renatosilva

Renatosilva

15/04/2005

Mas como é esse lance de Sleep? Poderia explicar melhor?


GOSTEI 0
Dopi

Dopi

15/04/2005

O Sleep apenas interrompe a execução do programa ou processo por n Milisegundos...

Isso faz o Windows perceber que a aplicação está livre e consegue transferir um processamento para outra tarefa..

Qualquer laço pode consumir muita CPU enquanto estiver rodando, afinal vc está instruindo o micro a ficar trabalhando repetidamente... não há ´estado de espera´

Insira um sleep( n ) dentro do laço... Experimente n de 1 a 100 e veja os resultados, se o laço ficar lento use intervalos menores...


GOSTEI 0
POSTAR