2011-08-23 74 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

相關問題