【发布时间】:2015-03-06 19:52:45
【问题描述】:
所以我有一个我使用的库,并在我的一个函数中调用该库中的一个函数,这恰好需要很长时间。现在,同时我有另一个线程在运行,我检查不同的条件,我想要的是,如果满足条件,我想取消库函数的执行。
现在我正在检查函数开始时的条件,但如果在库函数运行时条件发生变化,我不需要它的结果,并想从中返回。
基本上这就是我现在所拥有的。
def my_function():
if condition_checker.condition_met():
return
library.long_running_function()
有没有办法每隔一秒左右运行一次条件检查,并在满足条件时从 my_function 返回?
我考虑过装饰器、协程,我使用的是 2.7 但如果只能在 3.x 中完成,我会考虑切换,只是我不知道如何。
【问题讨论】:
-
我唯一能想到的就是偶尔检查一下在长时间运行的函数中是否满足条件。如果它是某种很容易打破的循环,但我确信有更好的解决方案。