Executer une fonction x fois par seconde

Résolu
Florian_88 Messages postés 14 Date d'inscription dimanche 17 juillet 2005 Statut Membre Dernière intervention 25 novembre 2015 - 11 avril 2006 à 21:10
Florian_88 Messages postés 14 Date d'inscription dimanche 17 juillet 2005 Statut Membre Dernière intervention 25 novembre 2015 - 12 avril 2006 à 14:11
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

SebDeBib Messages postés 2 Date d'inscription jeudi 1 décembre 2005 Statut Membre Dernière intervention 11 avril 2006
11 avril 2006 à 22:18
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
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 avril 2006 à 22:40
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
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 avril 2006 à 22:35
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
0
Florian_88 Messages postés 14 Date d'inscription dimanche 17 juillet 2005 Statut Membre Dernière intervention 25 novembre 2015
12 avril 2006 à 14:11
Merci, je maitrise pas trop les thread ni Win 32 mais je vait me repencher dessu
0
Rejoignez-nous