我在我的python卡应用程序中使用线程。
无论何时按下刷新按钮我都在使用线程调用函数,当调用函数时,main函数内会有另一个函数。
我想要的是每当子功能结束时。我希望在不关闭应用程序或ctrl + c的情况下杀死或停止线程。
我开始这样的线程
def on_refresh_mouseClick(self,event):
thread.start_new_thread( self.readalways,() )
在“ readalways ”函数中,我正在使用while循环,因为只要条件满足,while循环就会调用 continuousread ()函数。检查一下:
def readalways(self):
while 1:
cardid = self.parent.uhf.readTagId()
print "the tag id is",cardid
self.status = self.parent.db.checktagid(cardid)
if len(self.status) != 0:
break
print "the value is",self.status[0]['id']
self.a = self.status[0]['id']
self.continuesread()
def continuesread(self):
.......
.......
在 continueread 读取函数之后,应该清除线程中的值。
因为,如果我再次单击刷新按钮,则新线程正在启动,但某些值来自旧线程。
所以我想在完成 continueread 功能
时终止旧线程答案 0 :(得分:0)
请注意,来自同一进程的不同线程共享其内存,例如当您访问self.status
时,您(可能)操纵在整个过程中共享的对象。因此,即使你的线程在完成continuesread
(它们可能是什么)时被杀死,被操纵对象的状态仍将保持不变。
你可以
readalways
,就我所见,第一个似乎是最好的。