每隔x秒执行一次python函数

时间:2012-03-27 17:23:56

标签: python pygame

当我在寻找解决方案时,我遇到了这个问题,但它并没有完全符合我的需要:

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()

我该怎么做?

谢谢!

3 个答案:

答案 0 :(得分:3)

不应该这样做: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()

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以安装函数作为信号处理程序并使用signal.setitimer。如果你在Unix上,那就是......那就是线程和东西。