выполнять функцию каждые x число секунд питона - PullRequest
1 голос
/ 27 марта 2012

Я наткнулся на эту ветку, когда искал решение, но оно не совсем то, что мне нужно:

Каков наилучший способ повторного выполнения функции каждые x секунд в Python?

На самом деле это «работает» (или, по крайней мере, первое решение), но не позволяет вам делать это одновременно с остальной частью сценария.

По сути, мне нужно выполнить такую ​​функцию:

    def functionName():
        print "text"

Мне нужно, чтобы это выполнялось каждые, скажем, 100 миллисекунд. Но мне нужно, чтобы цикл while выполнялся одновременно:

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

Как бы я поступил об этом?

спасибо!

Ответы [ 3 ]

3 голосов
/ 27 марта 2012

Разве это не должно работать: 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()
0 голосов
/ 27 марта 2012

Вы, вероятно, можете установить свою функцию в качестве обработчика сигнала и использовать signal.setitimer .Если вы работаете в Unix, то есть ... тогда есть темы и прочее.

0 голосов
/ 27 марта 2012

Это можно сделать, создав поток и используя функцию wait(), чтобы он печатал после каждой функции wait() :) Если вам нужна помощь с потоками, пожалуйста, обратитесь к официальной документации за помощью или посмотрите / попроситедругой вопрос по переполнению.Ура:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...