0
저는 이와 비슷한 코드를 제공하고 있습니다. 기본적으로 나는 다른 스레드가 진행되는 동안 시작될 수있는 여러 스레드를 갖게 될 것이고 새로운 프로세스가 이전 코드를 죽이기를 원하지만 아직 코드 아래에 루프()은 죽기를 원하지 않는다. 이유를 모르겠습니다. 또한이 작업을 수행하는 더 좋은 방법이 있습니까?전역 변수가 변경되지 않습니다.
다른 프로그램이이 모듈을 가져 와서 첫 번째 스레드가 종료되기 전에 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
감사합니다. 감사드립니다.
파이썬에는'<> '연산자가 있습니까? –
'die == 1'이 결코 사실이 아닐 것입니다. –
저는 파이썬 2.7을 사용하고 있습니다. 그래야합니다! = 대신 사용하지만 여전히 지원됩니다. – Trevor