Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pause jusqu'au prochain idle

Mettre un programme en pause jusqu'au prochain temps d'inactivite

    25 février 2016 à 22:49:34

    Bonjour, 

    j'ecris en ce moment un programme relativement long et lourd, et le probleme que je rencontre c'est que certaines actions sont executees avant que d'autres aient fini de l'etre.

    Supposons par exemple que je cree un objet A, puis un second objet B. L'objet B a besoin de A pour exister, mais mon interpreteur execute tout d'un coup, si bien qu'il lance la creation de l'objet B avant que le A soit termine.

    Existe-t-il un moyen de preciser de n'executer une action qu'au prochain moment libre ? Ou encore mieux, existe-t-il un moyen de marquer des pauses ponctuelles, le temps de laisser l'interpreteur terminer tout ce qu'il a lance, avant de continuer ?

    J'ai cherche du cote du module time, avec par exemple sleep, mais sleep met le programme en pause, l'interpeter ne travaille pas pendant ce temps (en outre, ca reste assez degueu comme solution ^^)

    Toute aide sera la bienvenue =]

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      26 février 2016 à 6:15:55

      Salut

      je ne comprends pas bien comment tu as ce problème, je ne pense pas que tu utilises du code asynchrone.

      En Python, chaque instruction est exécutée l'une après l'autre. As-tu un exemple simplifié à montrer ?

      • Partager sur Facebook
      • Partager sur Twitter
        26 février 2016 à 10:11:35

        Normalement, tu ne devrais pas avoir ce problème mais tu peut toujours regarder du côté de fork()
        • Partager sur Facebook
        • Partager sur Twitter
          26 février 2016 à 19:20:53

          Bonjour et merci pour vos reponses =]

          Le code que j'execute est lance avec l'interpreter du logiciel 3d Maya

          Une maniere assez connue de reproduire ce probleme d'ajouter des menus a l'interface de maya.

          Pour faire simple, on source du code dans un fichier (userSetup.py) qui est evalue au demarrage de maya, mais il va parfois creer le menu (et le parenter a la mainWindow) avant que ladite mainWindow soit cree. La solution consiste a utiliser une commande du module maya qui s'appelle evalDeferred, qui permet d'evaluer durant le prochain idle. Mais je me vois mal runer 4000 lignes a travers un evalDeferred pour des scripts plus complexes...

          • Partager sur Facebook
          • Partager sur Twitter

          Pause jusqu'au prochain idle

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown