2017-02-21 3 views
1

Ich mache einfache GUI mit Pythonnet.Wie zu beenden Korrekt Thread auf Anwendung beenden

Es funktioniert gut, aber wenn ich auf Exit-Taste klicke, wird natürlich die Anwendung nicht gestoppt. Wie kann der laufende Thread korrekt beendet werden, wenn der Benutzer die Anwendung schließt?

+0

Ist das Ironpython oder pythonnet? – denfromufa

Antwort

2

Sie könnten versuchen wollen Ihr process Thread als deamon Thread Einstellung, wenn es um Ihren Bedarf passt:

self.thread = threading.Thread(target=self.thread_process, daemon=True) 

Hier einige Informationen über die deamon-Themen:

Ein Thread kann als gekennzeichnet werden "Daemon-Thread". Die Bedeutung dieser Flag ist, dass das gesamte Python-Programm beendet wird, wenn nur Daemon-Threads übrig sind. Der Anfangswert wird vom erzeugenden Thread geerbt. Das Flag kann über die Daemon-Eigenschaft festgelegt werden.

Quelle: https://docs.python.org/2/library/threading.html#thread-objects

+0

Bereits getan. Ich denke, das Problem ist subprocess.call, das einen anderen Nicht-Daemon startet. – Rahul

+0

Gelöst. Aber das Problem begann, als das resultierende Programm ein anderer Python-Thread war. Also alles vermischt. – Rahul

Verwandte Themen