Ir ao conteúdo

Timer.exe


yanpaulo

Posts recomendados

Postado

Ei, pessoal vocês tem alguma dica pra deixar esse programa mais leve?

Pois ele está consumindo 50% do processament de um duron 1.8.

Eia o código:

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <time.h>

void delay(int i)

{

int m;

time_t tp1, tp2;

i/=1000;

time(&tp1);

do

{

time(&tp2);

m=difftime(tp2, tp1);

m/=1000;

} while (i>m);

}

int main()

{

int tempo, dif, restante, pausa;

char ch, cont;

time_t tempo1, tempo2, tempo3, tempo4;

dif=0;

printf ("Digite o tempo, em minutos\n");

scanf ("%d", &tempo);

tempo*=60;

time (&tempo1);

do

{

time (&tempo2);

dif=difftime (tempo2, tempo1);

restante=tempo/60-dif/60;

if (kbhit())

{

ch=getch();

if (ch!='t')

{

printf ("Pausado!\nTempo restante: %d minutos\nPressione alguma tecla para continuar\n", restante);

time(&tempo3);

getch();

time (&tempo4);

pausa=difftime(tempo4, tempo3);

tempo+=pausa;

cont=1;

printf ("continuando\n");

}

if (ch=='t') printf ("voce tem %d minutos restantes\n", restante);

}

dif=difftime (tempo2, tempo1);

} while (tempo>dif);

printf ("Acabou o tempo!!!!\a\a\a\a\a\a\a\n");

}

Será que não tem como fazer um igual ou similar que seja mais leve?

Agradeço desde já!

  • Membro VIP
Postado

O problema é que o programa é basicamente um loop infinito, ai ele vai consumir todo o processamento disponível, você poderia usar timers para resolver o problema, não sei das bibliotecas padrão se existe algum timer, talvez você tenha que recorrer as bibliotecas do Windows.

Postado

Olá, resolvi meu problema! Eu coloquei um Sleep(500) no final do loop, e isso faz com que o loop só se repita 2 vezes por segundo, incrivelmente reduzindo o processamento gasto a menos de 1%!! Mas valeu pela ajuda, obrigado!

Só tem mais uma coisa: eu queria que fosse portável pra linux... será que tem alguma funçao que substitua getch() e Sleep()? no Linux? E em qual biblioteca tem, caso existam tais funções?

Agradeço!!

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!