3
我有一個用Python編寫的應用程序,使用Tkinter。其中一個功能允許打開串行端口,之後通過串行端口接收的任何消息都將顯示在文本窗口中。這工作正常。當我關閉窗口時,問題就出現了,它並沒有終止監視串口的線程。然後必須手動殺死(或者,拔掉USB串行電纜導致殺死該過程的異常)。線程在退出tk窗口時不關閉
我假設我在這裏錯過了一些簡單的東西,但我會想關閉應用程序會關閉所有相關的線程。我似乎無法在文檔中找到任何有關此問題的信息,但我可能在錯誤的位置查找?
代碼的串行線的情況下,這是相關的:
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)