哪个线程调用 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:
.
调用它
我 运行正在 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:
.