【问题标题】:execute function every x number of secods python每x秒执行一次函数python
【发布时间】:2012-03-27 17:23:56
【问题描述】:

我在寻找解决方案时遇到了这个帖子,但它并不能完全满足我的需要:

What is the best way to repeatedly execute a function every x seconds in Python?

这实际上“有效”(或至少第一个解决方案有效),但它不允许您与脚本的其余部分同时进行。

基本上,我需要执行这样的函数:

    def functionName():
        print "text"

我需要它每隔 100 毫秒执行一次。但我需要这个 while 循环同时循环:

    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

我该怎么办?

谢谢!

【问题讨论】:

标签: python pygame


【解决方案1】:

这不应该工作吗:http://www.pygame.org/docs/ref/time.html#pygame.time.set_timer

pygame.init()
pygame.time.set_timer(USEREVENT + 1, 100)
while True:
    for event in pygame.event.get():
        if event.type == USEREVENT + 1:
           functionName()
        if event.type == QUIT:
            pygame.quite()
            sys.exit()

【讨论】:

  • 也许你想分享一个样本。
  • @danihp:我在他们的文档中添加了从 cmets 复制的示例。
  • 是的,我早些时候看到了,并认为它不起作用。但实际上确实如此。该死的这个论坛运作良好......
  • 我刚开始使用 python 并正在开发一款游戏。对于中级程序员来说,这是一门华丽的语言!
【解决方案2】:

这可以通过创建一个线程并使用wait() 函数来完成,以便在每个wait() 函数之后打印 :) 如果您需要有关线程的帮助,请查看官方文档以获取帮助或查找/请求关于溢出的不同问题。干杯:)

【讨论】:

    【解决方案3】:

    您可能可以将您的功能安装为信号处理程序并使用signal.setitimer。如果你在 Unix 上,那就是......然后有线程和东西。

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      相关资源
      最近更新 更多