我有一個用python 2.7編寫的腳本來調用一個線程。但是,無論我做什麼,該線程都不會調用該函數。線程不會調用函數(Python)
函數調用:
def siren_loop():
while running:
print 'dit is een print'
我試圖把它的方式:
running = True
t = threading.Thread(target=siren_loop)
t.start()
或:
running = True
thread.start_new_thread(siren_loop,())
我甚至嘗試添加參數siren_loop看如果那可行,但沒有改變。我只是無法打印siren_loop函數中的行。
我也嘗試了很多其他奇怪的東西,這顯然沒有奏效。我究竟做錯了什麼?
編輯:由於人們說它的工作原理,我試圖從另一個函數調用線程。所以它看起來是這樣的:
def start_sirene():
running = True
t = threading.Thread(target=siren_loop)
t.start()
然後一部分是從名爲:
if zwaailichtbool == False:
start_sirene()
print 'zwaailicht aan'
zwaailichtbool = True
sleep(0.5)
也許這會導致什麼問題? 最後一個print語句有效,當我在線程語句之前或之後添加一個print時,它也起作用。
我剛剛試過你的代碼,用你試圖調用它的第一種方式,並在'siren_loop'中不斷打印出你的聲明。所以我不確定問題是什麼。 – tmwilson26
也使用QPython驗證。你的代碼很好。 – Carcigenicate
我編輯了這個問題,將其餘的代碼放在那裏。 – Noralie