1

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

Navigation() 

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

提前致谢。

4

2 回答 2

0

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

https://stackoverflow.com/a/325528

于 2013-05-20T16:21:40.050 回答
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()

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

于 2013-05-20T15:08:35.357 回答