【发布时间】:2014-08-22 03:58:42
【问题描述】:
我正在运行这个线程:
def run(self):
while 1:
msg = self.connection.recv(1024).decode()
我希望当我像这样关闭 Tkinter 窗口时可以结束这个线程:
self.window.protocol('WM_DELETE_WINDOW', self.closeThreads)
def closeThreads(self):
self.game.destroy()
#End the thread
不能使用 thread._close(),因为它已被弃用并且 python 3.4 不允许它。
【问题讨论】:
-
试试看你的
connection对象是否有非阻塞的recv方法。这样,您可以定期轮询它的数据并检查您在closeThreads方法中设置的退出标志。如果设置了标志,则跳出循环并从run函数返回。如果您的connection对象是socket,您可以调用self.connection.setblocking(0)使其成为非阻塞对象。
标签: python multithreading