我已经搜索了这个网站(和其他网站),但似乎找不到正确的解决方案。在
我有一个客户端程序,它连接到一个服务器,每隔几秒钟自动发送一条消息,以及用户命令。我用了多个线程。 输入Tkinter:一旦我点击“Connect”按钮,我的UI就会冻结,要么直到连接尝试超时,要么直到时间结束,如果客户端连接到服务器。在
我尝试过从按钮的命令参数调用线程,从主循环内部调用,也从主循环外部调用线程。我尝试过将主循环放在一个线程中,然后从那里为连接创建一个新线程。 似乎没有任何工作…UI继续挂起。在
class EventSim(Frame):
def __init__(self, parent):
self.queue = Queue
Frame.__init__(self, parent)
self.parent = parent
def initUI(self,IP_Address,Port_Number,Events_Directory):
#...
self.Con_Button = Button(frame7,text='Connect', command = lambda:
self.connect(IP_Text.get(),Port_Text.get(),))
def connect(self,IP,Port):
ConnectionThread = Thread(eventsim.con_thread(IP,Port))
ConnectionThread.start()
def main():
root = Tk()
root.geometry("300x310+750+300")
Sim = EventSim(root)
eventsim.readconfig()
Sim.initUI(eventsim.ipa,eventsim.portnum,eventsim.event_dir)
root.mainloop()
您将
^{1}$eventsim.con_thread(IP,Port)
的结果传递给Thread(...)
函数,因此它将等待eventsim.con_thread(...)
的执行完成。尝试更改:收件人:
^{pr2}$相关问题 更多 >
编程相关推荐