【发布时间】:2012-12-11 18:19:20
【问题描述】:
我们正在编写一个大量使用 NSURLConnection 的 SDK。要管理所有这些连接(例如,批量取消它们),最好它们都在单个线程(最好是主线程)上运行。由于 NSURLConnection 的异步特性,这并不是一个糟糕的想法——在我们的独立应用程序中,我们所有的连接都运行在主线程上,而连接后的繁重工作则在辅助线程(实际上是使用 GCD 或操作队列)上执行结果得到了,没有什么停滞不前。
所以问题是 - 在哪些情况下,用户会希望在多个线程上运行连接,以及在不是主线程的线程上运行?
编辑:我想我没有正确解释自己。我们以异步而非同步的方式使用 NSURLConnection。这允许我们在不阻塞 UI 的情况下在主线程上运行所有连接。问题是:我们 SDK 的用户何时希望在异步和不同线程上运行这些连接?
【问题讨论】:
-
使用NSOperationQueue。它具有cancel the operations 的属性。
-
不是每个
NSURLConnection都在后台线程上运行吗? -
sendSynchronousRequest:returningResponse:error 方法阻塞了调用它的线程。
标签: objective-c ios nsurlconnection