Seite 1 von 1

threading.Thread: Exit-Code und Signal

Verfasst: Montag 28. Oktober 2019, 14:49
von Daniel26
Hallo,

ich möchte per threading.Thread eine Funktion in einen eigenen Thread auslagern, damit meine GUI nicht hängt, während der Prozess läuft.
Diese Funktion ruft per os.system ein Shell-Script auf. Dieses Script liefert einen Return-Code. In der Funktion kommt der Returncode auch an bzw. ich kann ihn mit "print" ausgeben.
Aber wie krieg ich den Returncode zurück an den Mutterprozess? Ich würde gerne je nach Returncode eine Aktion starten.

Wie kriege ich im Mutterprozess mit, wenn der abgespaltene Thread durch ist? Gibts da ein Signal?

Gruß

Daniel

Re: threading.Thread: Exit-Code und Signal

Verfasst: Montag 28. Oktober 2019, 14:51
von sparrow
Wie man aus einer GUI mit Threads umgeht kommt ganz auf das verwendete Toolkit an. Womit baust du deine GUI?

Re: threading.Thread: Exit-Code und Signal

Verfasst: Montag 28. Oktober 2019, 14:57
von __blackjack__
@Daniel26: `os.system()` sollte man nicht verwenden. Dafür gibt es das `subprocess`-Modul. Und dort nur ``shell=True`` verwenden wenn das auch *tatsächlich* benötigt wird, denn sonst fängt man sich die gleichen Probleme ein derentwegen man `os.system()` nicht verwenden sollte.

Re: threading.Thread: Exit-Code und Signal

Verfasst: Montag 28. Oktober 2019, 15:10
von Daniel26
@sparrow: Die Gui bau ich mit pyQt4

@__blackjack__ Ich kann auch Subprocess verwenden, kein Ding.

Re: threading.Thread: Exit-Code und Signal

Verfasst: Montag 28. Oktober 2019, 15:30
von Sirius3
Warum verwendest Du pyQt4 und nicht 5?
Mit Qt nicht threading verwenden, sondern QThread von Qt. Dort benutzt man zum Übertragen von Nachrichten den Signal-Slot-Mechanismus von Qt. Gab in den letzten Tagen zu diesem Thema auch schon eine Beispiel von __deets__.

Re: threading.Thread: Exit-Code und Signal

Verfasst: Montag 28. Oktober 2019, 15:42
von Daniel26
Qt4 weil man bei uns auf alten Kram steht. Das ganze mache ich auch noch in python 2.7....
Ich schau mir das Qthread mal an.

Danke

Re: threading.Thread: Exit-Code und Signal

Verfasst: Dienstag 29. Oktober 2019, 14:01
von ThomasL
Daniel26 hat geschrieben: Montag 28. Oktober 2019, 15:42 Qt4 weil man bei uns auf alten Kram steht. Das ganze mache ich auch noch in python 2.7....
Mein Beileid. :-(