我有一个类似的代码,这个简化了你的时间。基本上我会有多个线程可以启动,而另一个仍在进行中,我希望新进程杀死旧进程,但在下面的代码中 loop()不想死,我不知道为什么。还有更好的方法吗?
请假设另一个程序导入此模块并在第一个线程结束之前再次执行automation.loopwrapperwrapper(0,255)和automation.loopwrapperwrapper(0,255)。
import threading
import time
die=0
value=0
def loop(valuefrom, valueto)
global value
global die
die=0
while value<>valueto:
if die==1:
return value
if value>valueto:
value -= 1
else:
value += 1
time.sleep(1)
return value
def loopwrapper(valuefrom, valueto)
global die
die=1
value=loop(valuefrom, valueto)
return value
def loopwrapperwrapper(valuefrom,valueto)
t = threading.Thread(target=loopwrapper, args=(valuefrom,valueto))
t.start()
如果我错误地将其简化并且代码确实有效,那么这是我正在使用的实际代码。 http://pastebin.com/SCR6pUwi
感谢您的帮助,谢谢。
答案 0 :(得分:0)
尝试使用以下命令:
而不是死= = 1,使用die ==&#39; 1&#39;或&#34; 1&#34;,或者你可以使用-eq代替== - &gt;这可能有用