答案 0 :(得分:1)
如果没有看到您的实际代码,很难确切知道发生了什么,但我会将您的线程方法设置为BTClient之外的函数,并将线程移到客户端之外并在之后添加对thread.join()的调用。 mainloop让您的线程在GC删除BTClient之前完成清理
def update():
import time
while thread._keep_alive:
time.sleep(1)
print("thread running")
thread = threading.Thread(target=update)
thread._keep_alive = True
thread.start()
最后
thread._keep_alive = False
thread.join()
答案 1 :(得分:0)
所以我在client.t.join()
之后添加了行root.mainloop()
,这解决了问题,即使我不知道为什么。我认为这是因为python正在破坏tkinter对象,因为在其他线程中仍有对它们的引用,所以等待它们关闭才能解决它。感谢。