簡體   English   中英

NSURLConnection和sendAsynchronousRequest:queue:completionHandler: - 完成塊是否在主線程中運行

[英]NSURLConnection and sendAsynchronousRequest:queue:completionHandler: - does the completion block run in the main thread

如果我將NSURLConnectionsendAsynchronousRequest:queue:completionHandler: ,我是否需要在完成處理程序中采取任何特殊的預防措施? 具體來說,是通過NSURLConnection直接異步發送與使用dispatch_async相同/相似,因為完成塊需要返回主線程與UI交互?

例如:在使用dispatch_async與UI交互(可能是錯誤的單詞)后,應用程序必須使用performSelectorOnMainThread

這是sendAsynchronousRequest:queue:completionHandler:一個考慮sendAsynchronousRequest:queue:completionHandler: ?

注意:我發現了類似的問題,但沒有具體說明。 例如,在NSURLConnection中阻止主線程嗎? indiekiduk特別指出它是一個新的線程,雖然是一個內部的 - 我認為這是有缺陷的,因為我認為它只是在運行循環結束 - 但我仍然在學習,可能/可能是錯誤的。

NSURLConnection的文檔說明sendAsynchronousRequest:queue:completionHandler:的queue參數sendAsynchronousRequest:queue:completionHandler:

隊列
請求完成或>失敗時調度處理程序塊的操作隊列。

該塊將在傳入的隊列中設置的任何線程上執行。

NSURLConnection sendAsync是在AFAIK上的線程的RunLoop上調度的,所以在啟動它的線程中調用該塊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM