哪个线程调用 CFRunLoopStop(CFRunLoopGetCurrent())?

Which thread to call CFRunLoopStop(CFRunLoopGetCurrent())?

我 运行正在 CFRunLoopRun() 线程 A。要终止运行循环,我是否应该回到线程A调用CFRunLoopStop(CFRunLoopGetCurrent())

如果我在 线程 B 中调用 CFRunLoopStop(CFRunLoopGetCurrent()) 会怎样?如果我在 线程 B,我怎么能回到 线程 A 来执行这个调用?

抱歉这个基本问题。我刚从 Android 切换到 iOS 并面临很多上下文切换...

谢谢!

如果您正在使用 POSIX 个线程,那么您一定要遵循 @Robotic Cat 在评论中提供的 the link。它指向一个文档,该文档描述了向 CFRunLoop 添加一个可以被触发以停止 运行 循环的源。

如果您正在使用 NSThread 子类,并且您有要停止的子类的句柄,您应该能够在那个 NSThread 子类上创建一个方法来停止 CFRunLoop 使用上面记下的代码并使用 performSelector:onThread:withObject:waitUntilDone:.

调用它