2015-01-21 1 views
0

주 프로그램으로 가져 오는 randomstuff이라는 모듈이 있습니다. 문제는 때로는 randomstuff에서 실행되는 코드를 주 프로그램에 영향을주지 않고 중지해야한다는 것입니다.주 프로그램을 종료하지 않고 가져온 모듈을 종료하십시오 - Python

나는 exit(), quit() 및 몇 가지 OS 기능을 시도했지만 모두 주 프로그램을 닫고 싶습니다. 모듈 내부에서 모듈을 중지해야하는지 확인하는 스레드가 있습니다. 따라서 프로그램을 중지해야한다는 것을 알게되면 스레드에 어떤 기능을 넣어야합니까?

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? 감사합니다.

+0

, "실행"을 어떻게 주 프로그램에서 코드를 실행하는 동안 계속 실행되는 방식으로 가져온 모듈의 코드? 실? –

+0

예, 스레드에 있습니다. – user3147471

+0

가능한 복제본 [일정 시간 후 스레드 중지] (http://stackoverflow.com/questions/6524459/stopping-a-thread-after-a-adata-of-time) –

답변

0

나는 지금 당신이 의미하는 바를 알고 있기 때문에 새로운 대답을 가지고 있습니다. 당신과 같이 스레드의 현재 상태를 저장하는 부울와 스레드 클래스를 확장해야합니다 :

mythread.py

from threading import * 
import time 

class MyThread(Thread): 
    def __init__(self): 
     self.running = True 
     Thread.__init__(self) 

    def stop(self): 
     self.running = False 

    def run(self): 
     while self.running: 
      print 'Doing something' 
      time.sleep(1.0/60) 


thread = MyThread() 
thread.start() 

그래서 mainscript.py

from mythread import * 
thread.stop() # omit this line to continue the thread 
+0

감사합니다. 도움! – user3147471

+0

반갑습니다. –

+0

추가 답변을 드려 죄송합니다. 테스트 할 시간이 있었지만 작동하지 않는 것 같습니다. 나는 정확한 코드를 사용했다. 단 mainscript.py에서 스레드 가져 오기와 중지 사이에 100ms 지연이 추가되었다. – user3147471

관련 문제