Executer une fonction x fois par seconde [Résolu]

Signaler
Messages postés
14
Date d'inscription
dimanche 17 juillet 2005
Statut
Membre
Dernière intervention
25 novembre 2015
-
Messages postés
14
Date d'inscription
dimanche 17 juillet 2005
Statut
Membre
Dernière intervention
25 novembre 2015
-
Slt a tous !!!

Est ce qu'il est possible en C d'executer une fonction x fois par seconde, ou qu'une boucle tourne a x tour par seconde. J'ai fait un tour sur google mais rien de fameux :D

4 réponses

Messages postés
2
Date d'inscription
jeudi 1 décembre 2005
Statut
Membre
Dernière intervention
11 avril 2006

Ben, sous Windows, le + simple est d'installer un timer dans ta fenêtre et de surcharger la méthode OnTimer() en traitant le message WM_TIMER. Pour installer le Timer, tu utilises SetTimer(...).
Sous Win32, je n'utilise pas beaucoup, mais il doit bien y avoir une méthode Sleep() ou sleep() dont tu passes en paramètre le temps en ms. A partir de là, rien ne t'empêche de créer une boucle qui va exécuter x fois ta fonction, en intercalant un sleep dedans...
Attention, de mémoire, l'horloge Windows utilise des ticks d'horloge pas calés sur une valeur entière d'horloge. Donc, c'est pas une méthode suisse et 1 seconde, ça va peut-être se transformer en 1,002 s... Mais bon, qui ira vérifier ? Ciao, Séb
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Voici un exemple:

unsigned _thread1 (LPVOID param)
{
int i= NULL;

while(i < 10)
{
i++;
}

return 0;
}

puis dans ta fonction principal (main)
HANDLE thread1;

thread1 = CreateThread(0, 0xFF, (LPTHREAD_START_ROUTINE)_thread1, 0, 0, 0);

et dans la section qui termine le programme
CloseHandle(thread1);

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Attention. L'utilisation de Sleep va arrêter tout le programme pendant la periode de temp définie. Si tu est en console, tu peut créé un nouveau thread qui executra une boucle. Ya aucun problème a utiliser Sleep dans le second thread.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
14
Date d'inscription
dimanche 17 juillet 2005
Statut
Membre
Dernière intervention
25 novembre 2015

Merci, je maitrise pas trop les thread ni Win 32 mais je vait me repencher dessu