2014-12-16 2 views
2

스레드의 주 기능에 runLoop이있는 스레드가 있습니다. 이 runLoop은 취소 된 경우 반복되는 while 루프 내부에 있습니다.Swift에서 NSThread를 중지하고 시작하십시오.

public override func main() { 

    super.main() 

    var runLoop: NSRunLoop = NSRunLoop.currentRunLoop() 
    do { 
     runLoop.run() 
    } while(!self.cancelled) 
    NSLog("Thread stopped") 
    NSThread.exit() 
} 

나는 스레드 콘솔에서을 중지 얻을,하지만 난 다시 스레드를 시작하려고 할 때 내가 같이 스레드가 성공적으로 종료 표시 (NSTreah.cancel() 방법을 통해) 스레드에 플래그를 취소 설정하면 항상 attempt to start the thread again이됩니다. 이 오류가 발생하지 않고 어떻게 스레드를 다시 시작할 수 있습니까?

답변

2

스레드를 다시 시작할 수 없습니다. 이것이 다중 스레드 프로그래밍의 기본 개념입니다. 스레드는 한 번 실행되고 중지되었을 때 다시 시작되지 않습니다. 단순히 대신 새 개체를 만듭니다.

관련 문제