2012-03-27 53 views
1

我碰到這個線程來到時,我一直在尋找一個解決方案,但它並不完全做我需要它:執行功能secods蟒每x數量

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

我該怎麼辦呢?

謝謝!

+0

你看看[threading](http://docs.python.org/library/threading.html)嗎? – bereal 2012-03-27 17:29:30

+0

可能的重複[在Python中每x秒重複執行一次函數的最佳方式是什麼?](http://stackoverflow.com/questions/474528/what-is-the-best-way-to-repeatedly-execute -a-function-every-x-seconds-in-python) – bernie 2012-03-27 17:30:29

回答

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

也許你想分享一個樣本。 – danihp 2012-03-27 17:31:06

+0

@danihp:我在文檔中添加了一個從註釋中複製的示例。 – 2012-03-27 17:32:02

+0

是的,我看到了那個,並認爲它沒有奏效。它實際上雖然。該死的這個論壇效果很好...... – maxhud 2012-03-27 17:34:59

0

這可以通過一個線程,並使用wait()功能,使得它的每一個wait()功能後,打印完成:)如果你需要幫助的線程,敬請期待在官方文檔中尋求幫助或者查看/詢問關於溢出的不同問題。歡呼:)

0

您可能可以安裝您作爲信號處理程序和使用signal.setitimer。如果你在Unix上,那是......然後有線程和東西。