-1

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

线程像守护进程一样运行。

怎么了?

编辑:我明白了,我尝试在线程上执行 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()
4

1 回答 1

0

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

于 2012-10-08T14:15:44.313 回答