Python 使用tkinter pythpn使用大量主循环
所以我在学校做一个项目,我在和Tkinter做一个游戏(我知道我可以用PyGame,但我们在学校只学Tkinter…) 我的游戏也使用套接字,你可能知道,一旦代码卡在上面,整个程序就会冻结。为了克服这个问题,我所做的是,大多数时候,我从服务器接收到的东西都是在线程中完成的。但是,由于没有服务器的回答,我无法继续,所以我调用了MainLoop,程序将在其上“停止”,一旦我从客户端获得信息,我就销毁了MainLoop,并在需要的地方继续。。。。 我的问题是这样做是否合适,如果不合适,请帮助我以“友好”的方式解决这个问题 看起来是这样的:Python 使用tkinter pythpn使用大量主循环,python,multithreading,sockets,tkinter,mainloop,Python,Multithreading,Sockets,Tkinter,Mainloop,所以我在学校做一个项目,我在和Tkinter做一个游戏(我知道我可以用PyGame,但我们在学校只学Tkinter…) 我的游戏也使用套接字,你可能知道,一旦代码卡在上面,整个程序就会冻结。为了克服这个问题,我所做的是,大多数时候,我从服务器接收到的东西都是在线程中完成的。但是,由于没有服务器的回答,我无法继续,所以我调用了MainLoop,程序将在其上“停止”,一旦我从客户端获得信息,我就销毁了MainLoop,并在需要的地方继续。。。。 我的问题是这样做是否合适,如果不合适,请帮助我以“友好
global data
Thread(target=recv)
def recv():
global data
data = my_socket.rceive(1024)
tk.mainlooop()
if data == True:
...Do Something...
试试这个
while true:
Try:
data = my_socket.rceive(1024)
break
Else:
print("Retrying")
While循环也在停止代码的其余部分。。。。它的行为就像一个正规的socket.receive(),因为为了让GUI继续运行,代码必须在MainLoop行中,首先您必须理解。通读