我在那有一個事件處理循環庫寫一個類管理事件循環程序,但這意味着它可能會在處理中被殺。我真的想等待當前的處理迭代完成後才能殺死。在一個線程
通常在這些情況下,在while循環中會檢查一個標誌,並且有一種方法 - stop()
,比如說 - 設置它爲False
。如果可能的話,我寧願避免這種要求。
下面認爲不好嗎?
def _process_loop(self):
while True:
event = self.queue.get()
self.thread.daemon = False
self._handle_event(event)
self.thread.daemon = True
編輯:是的,它是不好:RuntimeError: cannot set daemon status of active thread
什麼是正確的方式來實現這一目標?
退出while循環的標誌有什麼不好?這就是我會用的。 – dwxw
如果還有其他方法,我寧願避免這種情況。它使客戶端的責任停止後臺進程。 – quornian