0
私はこのようなコードを用意しています。基本的に私は他のスレッドがまだ進行中の間に開始するかもしれない複数のスレッドを持っていますが、私は新しいプロセスが古いコードをまだ終了させたいと思っています。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
ご協力いただきありがとうございます。
Pythonには '<> '演算子がありますか? –
もし 'die == 1'が決して真実でないならば、 –
私はpython 2.7を使用しています。そうすれば!=を代わりに使うべきですが、それでもサポートされています。 – Trevor