2013-07-26 46 views
0

我對Python有點新。我一直在努力尋找這個編碼問題的答案。我有一個在線程計時器上運行的函數。這允許它在我的其他代碼運行時每秒執行一次。我希望這個函數能夠連續執行,也就是說每次執行完它重新開始執行,而不是一個定時器。原因是由於步進電機的延遲變化,該功能需要不同的時間。使用線程的連續循環

+0

你能告訴你寫的代碼?如果我們能看到你已經嘗試過的東西,那麼提供指導將會更容易。 – DMH

+0

如果你想讓函數連續執行,爲什麼不直接編寫函數以便自己啓動呢?那麼只需在一個新線程中啓動一次,並且它會持續在該線程中運行? – vik

+0

@vik:如果你的意思是遞歸地調用自己,那麼你打到遞歸深度限制,即''RuntimeError:超過最大遞歸深度'' –

回答

0

這是你在找什麼?

from threading import Thread 

def f(): 
    print('hello') 

while True: 
    t = Thread(target=f) 
    t.start() 
    t.join() 

或者,也許這一點,這說明執行的併發路徑(生產,刪除sleep()來電,當然):

from threading import Thread 
from time import sleep 

def g(): 
    print('hello') 
    sleep(1) 

def f(): 
    while True: g() 

Thread(target=f).start() 
sleep(1) 
print('other code here')