2012-02-01 124 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语句。