0

所以我在学校做一个项目,我正在用 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...
4

1 回答 1

-2

尝试这个

while true:
    Try:
        data = my_socket.rceive(1024)
        break
    Else:
        print("Retrying")
于 2020-05-14T11:48:58.150 回答