在 Swift 中停止和启动 NSThread

arn*_*nau 3 ios swift

我有一个带有runLoop内部线程主函数的线程,该函数正常工作。这runLoop是在 while 循环中,如果 cancelled 为 false,它将迭代。

public override func main() {

    super.main()

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

当我为线程设置取消标志(通过NSTreah.cancel()方法)时,线程似乎成功结束,因为我在控制台中停止线程,但是当我再次尝试启动线程时,我总是得到attempt to start the thread again. 如何重新启动线程而不会出现此错误?

Ric*_*ick 5

您无法重新启动线程。这是多线程编程的一个基本概念,一个线程运行一次,当它停止时它不会重新启动。只需创建一个新对象即可。