2011-08-23 34 views
5

是否有任何可能的方法在一个线程中创建两个或多个运行循环?或者一个线程只能有一个运行循环?你能在iOS上为每个线程运行多个runloop吗?

我的伙伴告诉我,一个线程可能有两个或更多的运行循环里面。我怀疑它。我用Google搜索了一下,但什么也没找到。那么,是否有可能在一个线程中有两个或多个运行循环?

+4

也许你应该解释你为什么想要达到这个目标...... – Macmade

+0

我怀疑我的搭档说什么。我认为在一个线程中不可能有多个runloop。我记得一个线程在阅读苹果官方文档时只有一个运行循环。 – AechoLiu

回答

6

从苹果公司的documentation on NSRunLoop

您的应用程序不能创建或显式管理NSRunLoop 对象。每个NSThread对象(包括应用程序的主线程 )都有一个为其自动创建的NSRunLoop对象,如 所需。

除此之外,我看不出为什么你想创建每个线程多个runloop。

+0

是否有可能一个线程有多个运行循环?这个文件没有定义这样的事情。它说我们不能创建或管理runloop对象,但有可能iOS在一个线程中使用多个运行循环? – AechoLiu

+2

@Toro - 您无法为线程自己创建运行循环,并且系统只会为任何给定的线程返回一个运行循环,以便表示任何线程只能有一个运行循环。除了纯粹的理论讨论之外,我甚至没有看到每个线程有多个运行循环是有意义的。 –

+0

非常感谢。我问这个问题是因为我对我的搭档说的话感到困惑。 – AechoLiu

0

我想从CFRunLoop Reference文档

添加此报价有每个线程只有一个运行循环。你既不创建也不破坏线程的运行循环。核心基金会根据需要自动为您创建 。

+0

谢谢你的回答。我只是想确定一下当时的事情。我相信一个线程只有一个runloop。不管怎么说,还是要谢谢你。 – AechoLiu

相关问题