我的 python 代码运行一个需要很长时间的函数:
Navigation()
在此执行期间,我想要一个重置按钮。为了使重置按钮起作用,我使用了线程,并且我设法通过按下按钮将我的代码放入线程回调函数中。如何终止Navigation()
当前正在运行的并调用另一个新Navigation()
函数?谢谢。
提前致谢。
我的 python 代码运行一个需要很长时间的函数:
Navigation()
在此执行期间,我想要一个重置按钮。为了使重置按钮起作用,我使用了线程,并且我设法通过按下按钮将我的代码放入线程回调函数中。如何终止Navigation()
当前正在运行的并调用另一个新Navigation()
函数?谢谢。
提前致谢。
这个答案几乎总结了终止线程的问题和陷阱:
如果您的导航函数有一个循环执行,您可以检查“中断”变量是否设置为 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()
如果您可以访问所指示的多线程库,则可以使用更优雅的回调函数并简化重置逻辑。