2017-12-31 157 views
0

Ich versuche derzeit, zwei Schleifen in Python zu fädeln. Eine ist derzeit eine tkinter-Schleife, die die von mir eingerichtete GUI anzeigt, und die andere ist eine P2P-Chat-Funktion. Die Verwendung von 'Threading importieren', das Definieren von Threads und das Starten von Threads scheint nicht zu funktionieren. Irgendwelche Vorschläge für welche Methode kann ich verwenden, um diese beiden Schleifen gleichzeitig ausgeführt werden?Threading in Python Sugggestions

Der Code, den ich die Threads starten bin mit:

thread1 = threading.Thread(target=x.mainloop()) 
thread1.start() 
thread2 = threading.Thread(target=root.mainloop()) 
thread2.start() 

Antwort

1

Sie müssen die Funktionen übergeben ohne sie anrufen. Wie auch immer, Sie versuchen, sie aufzurufen, und übergeben den Rückgabewert als target für den Thread; Da sie nie zurückkehren, starten Sie nie den zweiten Thread. Versuchen:.

thread1 = threading.Thread(target=x.mainloop) # Removed call parens on target 
thread1.start() 
thread2 = threading.Thread(target=root.mainloop) # Removed call parens on target 
thread2.start() 
+0

dass ein Teil der Frage war ja, aber ich habe auch gelernt, Tkinter „hauptsächlich auf Single-Threaded-Event-Modell basiert die mainloop(), Rückrufe, Event-Handler und Anhebung tkinter Ausnahmen sind alle in Einzel behandelt Faden." –