samuraijack1412
Messages postés26Date d'inscriptionsamedi 29 novembre 2008StatutMembreDernière intervention13 juin 2009
-
30 avril 2009 à 10:51
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
9 mai 2009 à 11:26
Bonjour,
Je suis en train de réaliser une application console. Il se tourne automatiquement tous les 10 minutes. Que dois-je faire pour sortir la boucle n'importe où et n'importe quand lorsque j'appuie sur une touche définie. Merci de m'aider.
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 30 avril 2009 à 14:41
Salut,
cela n'engage que moi mais je ne trouve pas ton post très clair !
tu pourrais être plus précis ? Dans ta boucle effectue bien des instructions (appel de fonction(s), incrémentation ....), plus de détails s'il te plait
samuraijack1412
Messages postés26Date d'inscriptionsamedi 29 novembre 2008StatutMembreDernière intervention13 juin 2009 30 avril 2009 à 14:58
C une boucle do...while... infinie. Et pour faire touner automatique tous les 10 minutes, j'utilise la fonction Sleep(). Je veux que mon prgramme sorte cette boucle n'importe quand dès que j'appuie une touche, "s" par exemple. C clair maintenant?
samuraijack1412
Messages postés26Date d'inscriptionsamedi 29 novembre 2008StatutMembreDernière intervention13 juin 2009 30 avril 2009 à 15:33
Pah, mon problème est pire que ça. Dans ce cas là, la boucle s'arrête quand "test" est atteint. Mais dans ce cas ci, même si "test" n'est pas encore atteint, quand j'appuie sur un touche, le programme sort la boucle.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 30 avril 2009 à 15:50
Salut
Pourquoi break n'est pas propre? Pour sortir d'une boucle infinie, break convient très bien.
A+
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr
samuraijack1412
Messages postés26Date d'inscriptionsamedi 29 novembre 2008StatutMembreDernière intervention13 juin 2009 30 avril 2009 à 16:04
J'y ai déjà pensé. Mais avec cette méthode, l'arrêt de la boucle ne dépend pas quand on appuie sur la touche mais où on met le "si" dans la boucle. De plus, quand je le met dans ma boucle, mon prgramme sort jamais la boucle, ça je comprends pas. Merci quand même, une autre façon est mieux.
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 30 avril 2009 à 16:21
Orientes toi plus vers une programmation événementielle. Regarde quelques tutos pour mieux comprendre.
A+
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr
samuraijack1412
Messages postés26Date d'inscriptionsamedi 29 novembre 2008StatutMembreDernière intervention13 juin 2009 30 avril 2009 à 16:43
Je crois que j'ai bien compris. Avec une boucle infinie qui contient des sous boucles pertant de temps pour parcourir une pile, l'intruction:
si(test)
break;
ne convient pas si on veut sortir cette boucle tout suite dès une action quelconque.
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 4 mai 2009 à 09:29
Si tu veux vraiment être sure de sortir de la boucle des que tu appuies sur une touche, la programmation événementielle ne peut pas te le garantir.
La seule solution c'est d'utiliser un thread qui ne fera que scruter toutes les 10 ms si une touche est appuyé ou pas. Si oui, ce thread devra avertir le second thread afin qu'il arrête le traitement.
A+
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr