Bonjour à tous ,

voilà je cherche à lancer plusieurs threads en cliquant sur un bouton seulement je n'y arrive pas sans que cela ne crash l'application, je m'explique :
Mon but est assez simple : je veux que lorsqu'un bouton est cliqué un thread contenant des actions "principales" à réaliser soit lancé mais également deux autres threads ( qui servent à mettre à jour les logs du programme ) simultanément seulement je n'y arrive d'aucune manière, avant toute chose voici la classe que j'utilise pour créer mes threads :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
class GenericThread(QtCore.QThread):
 
	def __init__(self, function, *args, **kwargs):
		QtCore.QThread.__init__(self)
		self.function = function
		self.args = args
		self.kwargs = kwargs
 
        def __del__(self):
		self.wait()
 
	def run(self):
		self.function(*self.args,**self.kwargs)
		return
Ensuite l'idée c'est de connecter mon fameux boutton à une fonction qui initialisera les 3 threads, mais quand je fais cela ça ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
def launch_thread_principale(self):
       self.GenThread_action_principale = GenericThread(self.action_principale)
       self.GenThread_action_principale.start()
       self.GenThread_log_1 = GenericThread(self.init_log_1)
       self.GenThread_log_1.start()
       self.GenThread_log_2 = GenericThread(self.init_log_2)
       self.GenThread_log_2.start()
Quand le bouton connecté a "launch_thread_principale" sera pressé, seul un thread ( le premier ) sera lancé ( si je me souviens bien car j'ai testé il y a une semaine ).
Si en revanche je fais 3 fonctions ( une pour chaque thread ) et que je fais trois connections au bouton, quand je clique l'application crash.

Merci d'avance !

EDIT IMPORTANT : jai changer le code de ma classe de thread je l'avais pas posté en entier !!