Created
May 10, 2011 19:32
-
-
Save nunomazer/965203 to your computer and use it in GitHub Desktop.
Exemplo de relógio utilizando threads em Dev-C
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include | |
#include | |
#include | |
#include | |
int executando; | |
// variavel global que controlar se o aplicativo esta executando | |
// ela garantira o encerramento das threads abertas quando seu valor for zero | |
void relogio () { | |
// o tipo long comporta numeros nao fracionados | |
// com valor superior (longo) ao tipo | |
int long inicio = time(NULL); | |
long agora; | |
while (executando != 0) { | |
agora = time(NULL); | |
// posiciona o relogio na coluna 1 linha 1 | |
// a tela de texto tem 80 colunas por cerca de 23 linhas | |
gotoxy(1,1); | |
printf ("Tempo: %d\n", agora - inicio); | |
// este comando segura a execucao do codigo pelo tempo em milisegundos passado por parametro | |
// neste caso seguramos em 1 segundo | |
_sleep(1000); | |
} | |
printf ("Relogio parado!\n\n"); | |
} | |
int main(int argc, char *argv[]){ | |
int x; | |
executando = 1; | |
// inicia a thread que executara a funcao relogio em paralelo com o restante da aplicacao | |
_beginthread(relogio, 0, NULL); | |
for (x=0; x<10000; x++) { | |
// posiciona o texto na coluna 1 linha 5 | |
// a tela de texto tem 80 colunas por cerca de 23 linhas | |
gotoxy(1,5); | |
printf ("For do MAIN %d\n", x); | |
} | |
for (x=0; x // posiciona o relogio na coluna 1 linha 10 | |
// a tela de texto tem 80 colunas por cerca de 23 linhas | |
gotoxy(1,10); | |
printf ("Novo For do MAIN %d\n", x); | |
} | |
// setando o valor desta variavel como 0 garantimos que o while do relogio para a execucao | |
executando = 0; | |
system("PAUSE"); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment