我有一个带有runLoop
内部线程主要功能的线程正常工作。此runLoop
位于while循环内,如果取消为false,将循环迭代。
public override func main() {
super.main()
var runLoop: NSRunLoop = NSRunLoop.currentRunLoop()
do {
runLoop.run()
} while(!self.cancelled)
NSLog("Thread stopped")
NSThread.exit()
}
当我为线程设置cancel标志(通过NSTreah.cancel()
方法)时,线程似乎成功结束,因为我在控制台中 Thread stopped ,但是当我尝试启动时再一次,我总是得到attempt to start the thread again
。如何在不收到此错误的情况下重新启动线程?
答案 0 :(得分:4)
您无法重新启动线程。这是多线程编程的基本概念,一个线程运行一次,当它被停止时它不会重启。只需创建一个新对象。