Python : attendre via variables : est-ce une bonne idée ?

Résolu/Fermé
Lecodeurhtmlcss Messages postés 76 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 24 août 2022 - Modifié le 30 juil. 2021 à 15:24
Lecodeurhtmlcss Messages postés 76 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 24 août 2022 - 31 juil. 2021 à 14:00
Bonjour et merci de votre attention,

Dans un programme que je crée, j'ai une boucle principale qui lance des fonctions à un intervalle régulier. Par ailleurs, ce programme détecte des mouvements de souris et agit en fonction. Pour éviter le mal de mer, j'aimerai que ces deux fonctionnalités fonctionnent au même moment.
(La fonction liée au déplacement de souris n'est pas toujours déclenchée et calculerait pour rien si elle était ajoutée dans la boucle principale, ce sont donc deux fonction différentes)

J'ai donc pensé directement à faire attendre la fonction "souris" pour modérer ses lancements. Malheureusement, on ne peut pas utiliser la méthode thread/.join -- de fait seule ma fonction principale pourra attendre avec .join car c'est elle qui appelle, et pas la fonction souris.

J'ai donc pensé à utiliser une variable on/off qui sera testée par la fonction souris et allumée/éteinte par la fonction principale, mais il va sans dire que ce serait assez hasardeux (la fonction souris pourrait se déclencher plusieurs fois ou rater le coche !).

On pourrait certes régler la possibilité que cette fonction se déclenche plusieurs fois (lors du déclenchement la fonction souris remet la variable à off), mais je ne suis pas sûr qu'elle se déclenchera !

Donc :
1. Est-ce quand même une bonne idée d'utiliser une variable on/off pour communiquer entre les fonctions ?

2. Étant donné que os.wait ne semble pas très sympa pour passer entre différentes fonctions, pourrait-il y avoir une autre méthode ?

Merci beaucoup !


2 réponses

Bonjour à nouveau,

Je ne comprends pas ce que tu dis, un mouvement de souris, c'est un truc que l'on gère instantanément, ni non plus le rapport avec des threads, sachant que tu utilises tkinter, nul besoin de threads pour faire ça.

Cependant le problème auquel tu es confronté n'est quand même pas très clair, que font les fonctions qui sont lancées périodiquement ? Pourquoi as-tu besoin de faire une synchronisation ? Je pense que c'est un faux problème.
1
Lecodeurhtmlcss Messages postés 76 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 24 août 2022 1
31 juil. 2021 à 13:58
Je pensais auparavant mettre un peu d'attente pour permettre une même vitesse de déplacement par exemple sur toutes la capacités d'ordinateurs, mais c'est peut-être la meilleure idée !
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 Ambassadeur 1 551
31 juil. 2021 à 13:33
bonjour,
tu ne décris pas ce que tu veux réaliser, tu décris comment tu as tenté de le réaliser.
si je devine bien ce que tu expliques peu, moi je ferais toutes les actions dans les fonctions périodiques.
et, donc, les mouvements de souris se contenteraient de modifier des variables qui influenceraient le comportement des fonctions périodiques.
1
Lecodeurhtmlcss Messages postés 76 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 24 août 2022 1
31 juil. 2021 à 14:00
C'est une très bonne idée -- mais je me rabattrais sur l'avis de vortex (pas d'attente du tout). Merci du conseil !
0