2012-02-01 144 views
1

我想在Windows下創建一個守護進程線程,但我不知道我做錯了什麼。下面的代碼是作爲一個正常的線程:我沒有看到「結束運行」寫入控制檯。有什麼建議麼?創建守護進程線程

def start(self):   
    self.isrunning = True   
    self.thread = threading.Thread(name="GPS Data", target=self.thread_run) 
    self.thread.setDaemon(True) 
    self.thread.run() 
    print "End Run" 


def thread_run(self): 
    while self.isrunning: 
     data = self.readline() 
     print(data) 

回答

6

以下:

self.thread.run() 

應改爲:

self.thread.start() 

否則,thread_run()獲取調用當前線程的上下文中,而不是在一個新的線程上下文。

thread_run()函數永不返回(因爲self.isrunning永不改變),並且代碼永遠不會到達print語句。