大家好我有点麻烦。 我完成了我的程序,检查是否存在bitbucket的新修订版。 一切都很好,除非我关闭我的应用程序并且线程仍在运行,程序可以在任务管理器中看到。 EVT_CLOSE代码如下:
def on_close(self, event):
if self._thread is not None and self._thread.isAlive():
self._thread.interrupt.set()
self.Destroy()
event.Skip()
线程像deamon一样运行。
怎么了?
编辑: 我在下线,我试图在线程上做join()方法。 但我不行。
def on_close(self, event):
if self._thread is not None and self._thread.isAlive():
self._thread.join()
self._thread.interrupt.set()
self.Destroy()
event.Skip()
和
def on_close(self, event):
if self._thread is not None and self._thread.isAlive():
self._thread.join(10)
self._thread.interrupt.set()
self.Destroy()
event.Skip()
答案 0 :(得分:0)
在关闭事件处理程序中,您需要让它结束线程或等待线程结束。通常你可以通过使用线程的join()方法来实现。如果线程正在打开另一个进程并且该进程需要很长时间,那么您可能希望尝试终止正在运行的进程,以便线程可以返回。