Problème de réentrance.

Sim 2005 Messages postés 86 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 18 juillet 2009 - 17 oct. 2006 à 19:08
Sim 2005 Messages postés 86 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 18 juillet 2009 - 17 oct. 2006 à 20:45
Bonjour,
J'ai un problème de réentrance dans une procédure utilisant un timer, la fonction n'a pas le temps de terminer et le timer génère un événement. Comment éviter ce type de disfonctionnement.
Utiliser une variable globale?
Toutes vos idées sont les bienvenues,

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 oct. 2006 à 19:23
En ce cas, ne pas utiliser de timer mais un message perso.

Deniere instruction de WM_CREATE ou WM_INITDIALOG:
PostMessage(hwnd, PERSO_MSG, 0, 0);

Tu repostes le même message en dernière instruction de ta boucle longue.

Dans ta WindProc, tu déclenches en cas de PERSO_MSG la fonction que tu avais pour WM_TIMER.

ciao...
BruNews, MVP VC++
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
17 oct. 2006 à 19:48
Bonsoir

Dans ta fonction appellée par ton timer, tu le kill, tu fais ce que tu as a faire et quand c'est fini, avant le return, tu recrées ton timer.

Matt...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 oct. 2006 à 20:02
Le message perso revient au même mais économise création et destruction d'objet noyau timer, c'est 100% benef.

ciao...
BruNews, MVP VC++
0
Sim 2005 Messages postés 86 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 18 juillet 2009
17 oct. 2006 à 20:41
le problème c'est que settimer est utilisée sans hwnd ni identificateur. settimer(NULL, NULL, 1000, NULL); KillTimer(NULL, NULL) ne fonctionne pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sim 2005 Messages postés 86 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 18 juillet 2009
17 oct. 2006 à 20:45
ou alors j'ultilise sleep()
0
Rejoignez-nous