2011-10-07 102 views
0

開始一個新線程的最佳位置是什麼?我應該在應用程序委託中創建它嗎,還是可以從任何其他類(例如單例)啓動它?我應該在哪裏創建我的線程? (Objective-C)

感謝您的幫助

+3

這完全取決於你爲什麼需要一個新的線程。對於這樣一個廣泛的問題,答案是應用程序代表,但對於更具體的問題,答案可能會有所不同。 – PengOne

+0

明白了,後臺線程會處理與服務器的同步 – iosdevnyc

回答

2

,如果你要加入的線程,那麼你通常要創建的線程局部(或訪問)創建的網站,或者在同一個對象的實現。當您想要執行線程阻塞時,您通常會加入或使用基於任務的接口,直到線程/任務完成。

如果分離(有可能如果你allocNSThread或使用detach...調用),那麼它可能會創建任何最有意義的程序的流程。

這意味着你應該贊成'地方'而不是集中在兩種情況下。

如果您使用基於任務的接口(例如NSOperation),那麼您可能需要集中許多客戶端可能到達操作隊列的一些事情(如示例)。

從註釋中提取詳細信息:如果您創建分離的線程與服務器進行交互,那麼在您的實現中創建與服務器交互的線程或者與那些交互的客戶端代碼可能是一個好主意實現。當原因/結果不需要集中時,應用程序委託並不是一個好選擇。

相關問題