python:向线程应用程序添加重置函数

时间:2013-05-20 15:03:54

标签: python python-2.7 python-3.x

我的python代码运行一个需要很长时间的函数:

Navigation() 

在执行期间,我想要一个重置按钮。为了重置按钮工作,我使用了线程,我设法通过按下按钮将我的代码转换为线程回调函数。如何终止当前正在运行的Navigation()并调用另一个新的Navigation()函数?感谢。

提前致谢。

2 个答案:

答案 0 :(得分:0)

如果您的导航功能有一个执行的循环,您可以检查“中断”变量是否设置为True。如果是这样,您可以在该检查期间终止导航功能:

def navigation(self):
    # reset self.interrupt as appropriate
    while not self.interrupt:
        pass # Do something here
        # You will want some other exit condition as well, of course.

def button_pressed_response(self):
    self.interrupt = True
    self.navigation()

如果您可以按照指示访问多线程库,则可以使用更优雅的回调函数并简化重置逻辑。

答案 1 :(得分:0)

这个答案几乎总结了终止线程的问题和陷阱:

https://stackoverflow.com/a/325528