首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在函数中取消计时器的问题(python)

在函数中取消计时器的问题(python)
EN

Stack Overflow用户
提问于 2019-05-12 23:42:53
回答 2查看 201关注 0票数 0

我让一个函数在循环中不断运行,检查它是否应该启动或取消在函数作用域中定义的计时器。需要在函数中定义计时器,因为回调也在函数中定义。我可以很好地启动计时器,但当它试图取消时,我得到一个错误‘本地变量’计时器‘赋值前引用’。

我尝试在全局作用域中定义计时器及其回调(这是不可取的),但我得到另一个错误“线程只能启动一次”。

代码语言:javascript
复制
import threading
import random

def start():
    trigger = random.randint(0,1)
    def do_something():
        print(trigger)
    if trigger == 0:
        timer = threading.Timer(2,do_something)
        timer.start()
    else:
        timer.cancel() #: if trigger is 1, I want to cancel the timer
    threading.Timer(1,start).start() #: start() is in a loop and is constantly checking trigger's value

start()

我希望根据触发器的值启动或取消相同的计时器。计时器和它的回调应该在函数中定义。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56100848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档