wxPython mit Threads und Queues
Verfasst: Sonntag 10. Januar 2010, 21:14
Hallo ich versche zurzeit eine GUI für einen kleinen Server zu basteln der später für ein Spiel dienen soll.
Nun habe ich mir eine GUI gebastelt und habe die eigentliche Funktionalität in einem extra Thread laufen. Dies ist nötig da die GUI im Mainloop und der Server auch in einer Endlosschleife laufen muss.
Nun versuche ich die Kommunikation über eine Queue laufen zu lassen. Nur wird hierbei nur die erste Nachricht von der GUI geholt und danach nix mehr.
Mein Code:
Ich dachte die GUI läuft auch in einem Loop. Warum hollt er aber nach dem ersten Durchlauf keine Nachricht mehr aus der Queue?
Danke für Tipps!
Grüße
Nun habe ich mir eine GUI gebastelt und habe die eigentliche Funktionalität in einem extra Thread laufen. Dies ist nötig da die GUI im Mainloop und der Server auch in einer Endlosschleife laufen muss.
Nun versuche ich die Kommunikation über eine Queue laufen zu lassen. Nur wird hierbei nur die erste Nachricht von der GUI geholt und danach nix mehr.
Mein Code:
Code: Alles auswählen
from GUI import MyFrame
import wx
import Queue
from PodSixNet.Server import Server
from server import MyServer
from time import sleep
from threading import Thread
queue = Queue.Queue()
class Server(Thread):
def __init__(self,queue):
Thread.__init__(self)
self.queue = queue
def run(self):
server = MyServer(self.queue)
while True:
server.Pump()
sleep(0.01)
if __name__=='__main__':
Server = Server(queue)
Server.start()
app=wx.PySimpleApp()
frame = MyFrame()
data=queue.get()
print data
app.MainLoop()
Danke für Tipps!
Grüße