我們正在編寫一個大量使用NSURLConnection的SDK。要管理所有這些連接(例如,大規模取消它們),最好是它們全部在單個線程(最好是主線程)上運行。由於NSURLConnection的異步特性,這並不是一個可怕的想法 - 在我們的獨立應用程序中,所有連接都在主線程上運行,並且在連接之後在輔助線程(實際上使用GCD或操作隊列)上執行繁重的工作結果得到了,沒有任何阻礙。什麼時候你想要在輔助線程上運行NSURLConnection?
所以問題是 - 在哪些情況下用戶想要在多個線程上運行連接,並且在不是主線程的線程上?
編輯:我想我沒有正確解釋自己。我們在異步中使用NSURLConnection,而不是同步時尚。這允許我們在主線程上運行所有連接而不會阻塞UI。問題是:我們SDK的用戶何時希望在異步和不同的線程上運行這些連接?
使用[NSOperationQueue](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSOperationQueue_class/Reference/Reference.html)。它具有[取消操作]的屬性(https://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSOperationQueue_class/Reference/Reference.html#//apple_ref/occ/instm/NSOperationQueue/cancelAllOperations) 。 – iDev
每個'NSURLConnection'都不在後臺線程上運行嗎? – 2012-12-11 18:24:58
sendSynchronousRequest:returningResponse:error方法阻止調用它的線程。 –