Partage
  • Partager sur Facebook
  • Partager sur Twitter

Thread sans run() ???

Débutant

Anonyme
    8 août 2015 à 9:22:50

    Bonjour à toutes et tous,

    Je viens de finir le tutoriel de python et je m’exerce sur une petite application servant à récupérer des données sur Facebook et les moteurs de recherche.

    Je rencontre un souci que j’ai résolu d’une manière qui ne me convient pas vraiment, j’aimerais des conseils.

    J’ai actuellement 3 class mais à la fin je devrais en avoir normalement 5. Il y en a une qui gère l’interface graphique (tkinter), une fait les traitements (parse facebook, google, bing,…) et une « centrale » qui fait l’intermédiaire entre les traitements et l’interface graphique pour afficher des messages de réussites ou d’échec sur l’interface graphique et vérifier la validité des données. Cette classe centrale sera aussi utile plus tard pour manipuler des objets servants aux sauvegardes en bdd et à la génération de pdfs et/ou HTML.

    diagramme


    Le problème que j’ai rencontré et lors du parse des réseaux sociaux et moteurs de recherches l’interface graphique était gelé et les widget devenaient des carré gris. J’ai résolu se souci en ouvrant un thread lorsque j’instancie l’objet pour les traitements depuis la class centrale.

    J’avais tout d’abord essayé :

    obj = Thread(target=traitement)



    Mais obj était un objet thread et je ne pouvais pas manipuler les méthodes de la class traitements. Alors j’ai fait un thread dans le constructeur de traitements comme expliqué dans le tutoriel, et cela fonctionne. Cela fonctionne mais le thread ne fonctionne que dans la méthode run() que j’ai réécrite dans traitements et cela m’oblige à faire les manipulations que j’avais prévu de faire dans la class centrale à l’intérieur de run().


    Je voudrais savoir si il est possible d’utiliser un thread sans utiliser la méthode run() ou si ce n’est pas possible d’utiliser run() dans la class centrale ? Idéalement j’aimerais instancier la class traitement, le thread s’ouvre, je fais mes manipulations de traitements depuis la class intermédiaire et je ferme le thread une fois fini.


    Je ne sais pas si j’ai été limpide, je n’ai pas une bonne plume, désolé :)


    Merci à vous !

    • Partager sur Facebook
    • Partager sur Twitter
      8 août 2015 à 12:32:51

      python 2 : https://docs.python.org/2/library/thread.html

      python 3 : https://docs.python.org/3.5/library/_thread.html

      -
      Edité par josmiley 8 août 2015 à 12:33:34

      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

      Anonyme
        8 août 2015 à 14:36:41

        Ca fait plaisir d'avoir une réponse aussi bien construite :)

        salut

        • Partager sur Facebook
        • Partager sur Twitter

        Thread sans run() ???

        × 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