【发布时间】:2013-12-21 02:49:39
【问题描述】:
我有一个使用 Tkinter 用 Python 编写的应用程序。其中一项功能允许打开串行端口,之后通过串行端口接收到的任何消息都显示在文本窗口中。这工作正常。当我关闭窗口时问题就来了,它不会杀死监视串行端口的线程。然后必须手动终止它(或者,拔下 USB 串行电缆会导致异常终止进程)。
我假设我在这里遗漏了一些简单的东西,但我原以为关闭应用程序会关闭所有关联的线程。我似乎在文档中找不到任何关于此的内容,但我可能找错地方了?
相关的串行线程代码:
class SerialThread(threading.Thread):
def __init__(self, queue, sp):
threading.Thread.__init__(self)
self.queue = queue
self.ser_handle = sp;
def run(self):
while True:
if self.ser_handle.inWaiting():
text = self.ser_handle.readline(self.ser_handle.inWaiting())
self.queue.put(text)
time.sleep(0.2)
【问题讨论】: