Bonjour,
j'aurais besoin d'une de vos lumieres
Je vous explique dans quel cas je veux bloquer ma fonction:
_ J'ai une application graphique qui affiche un echange. Cette application a sa propre classe.
_ Dans une autre classe on a une fonction "echange" qui indique à l'application graphique que nous devons animer un echange (on emet un signal)
On sait bien qu'une animation prend du temps, et que les instrucitons d'echanges sont rapides.
Je veux donc faire attendre la fonction echange.
J'ai trouvé un moyen avec une fonction qqconque "QTest::qWait( temps d'attentes )"
L'attente se fait bien et j'anime l'echange on a le temps de visualiser et j'peux passer a l'echange suivant, et ainsi de suite
Mais je sais que j'peux ameliorer mon application car le temps d'attente varie.
Voila mon idee:
DEBUT Algo dans ma tete:
1 - Je me trouve dans la fonction echange, J'indique que je veux echanger en emettant un signal à la classe graphique.
2- Pour attendre le deroulement de l'animation, je bloque ma fonction (ici se trouve le probleme)
3- Dans la classe graphique j'anime l'echange.
J'ai un moyen de savoir que l'echange est terminee! J'emet donc un signal finAnimation recu par la classe echange.
4- Lorsque la classe echange recoit ce signal , normalement on doit debloquer dans la fonction echange (ici c'est la fin du probleme lol)
FIN Algo dans ma tete.
Mon soucis ici, c'est que des que ca marche quand je fais un simple cin>> mais je dois taper dans la console un entier pour que ca continue et ca debloque le cin!!!et un autre soucis .. cela freeze mon application graphique donc on voit pas l'animation !
Resume:
_ Lorsque je recois le signal finAnimation, cela enclenche la fonction suivante :
void echangeFini() { // Debloque la fonction>> }
Que dois-je faire pour indiquer la fin du blocage ? J'ai essayé des tubes/pipes de communications mais ces appels sont "trop" bloquant ca freeze mon application graphique comme le cin. Une SOLUTION ?
J'espere que vous regarderez, car c'est vraiment vite fait comme probleme
Merci d'avance.
Cordialement M Salhi
Partager