首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >延迟代码的执行?

延迟代码的执行?
EN

Stack Overflow用户
提问于 2010-07-24 17:47:23
回答 2查看 116关注 0票数 0

如果我的头衔有点不清楚,我很抱歉。基本上我想打印一个‘’持续5秒,然后执行一段代码。这是我尝试过的:

代码语言:javascript
复制
for iteration in range(5) :
    timer = threading.Timer(1.0, print_dot)
    timer.start()
#Code chunk

似乎计时器为每个实例都启动了自己的线程,所以五个计时器都离得很近,而且代码块也执行得太早了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-24 17:49:19

使用time.sleep()

http://docs.python.org/library/time.html#time.sleep

票数 3
EN

Stack Overflow用户

发布于 2010-07-24 18:03:29

您的示例将5个计时器排入队列,并(相对地)一次启动所有计时器。

相反,应该链接计时器。伪代码(因为我几乎不懂python):

代码语言:javascript
复制
iterationCount = 0
function execute_chained_print_dot:
  if iterationCount < 5
    iterationCount = iterationCount + 1
    timer = threading.Timer(1.0, execute_chained_print_dot)
    timer.start()
  print_dot()
execute_chained_print_dot()

这里假设python Timer类只触发一次print_dot方法。如果它不这样做,并且反复触发print_dot,直到它停止,那么请执行以下操作:

代码语言:javascript
复制
iterationCount = 0
timer = threading.Timer(1.0, execute_print_dot_until_finished)
timer.start()
function execute_print_dot_until_finished:
  if iterationCount < 5
    iterationCount = iterationCount + 1
    print_dot()
  else
    timer.stop()

免责声明:对于本代码中的任何off-by-one错误,我不承担任何责任;)

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

https://stackoverflow.com/questions/3324604

复制
相关文章

相似问题

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