ben c normal que ca ne fasse pas de boucle: dans ton main, tu lances 2 threads et puis tu sors du programme.... Donc une fois que tu as executé ton main, le programme est fini.
Si tu veux que cela fonctionne, il faut que tu attendes que le thread te signale qu'il a détécté une frappe au clavier. Un exemple tout bete, tres simple, même si vraiment tres crade niveau programmation:
#include <windows.h>
#include <process.h>
#include <stdio.h>
#include <conio.h>
void press(void*);
void loop(void*);
int stop = 0;
int flag_sync = 0; //
void main(void)
{
_beginthread(press,0,NULL);
_beginthread(loop,0,NULL);
while(flag_sync == 0) Sleep(10);
}
void press(void*)
{
getch();
stop = 1;
}
void loop(void*)
{
int i = 0;
while(stop == 0)
{
printf("%d\n",i);
i++;
Sleep(100);
}
flag_sync = 1;
_endthread();
}