wxpython用线程关闭应用程序

时间:2012-10-08 11:25:25

标签: python multithreading wxpython

大家好我有点麻烦。 我完成了我的程序,检查是否存在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()

1 个答案:

答案 0 :(得分:0)

在关闭事件处理程序中,您需要让它结束线程或等待线程结束。通常你可以通过使用线程的join()方法来实现。如果线程正在打开另一个进程并且该进程需要很长时间,那么您可能希望尝试终止正在运行的进程,以便线程可以返回。