我会用以下方式在单独的线程中同步启动我的ASIHTTPrequest:
//inside this start method I create my ASIHTTPRequest and start it
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[process start];
});
但是completionBlock仍然在主线程上执行。是否可以使completionBlock的执行与发起请求的线程保持相同? 我能想到的唯一解决方法是定义一个调度队列并手动在同一线程中执行completionBlock,因此保留对创建队列的引用。但这并不能直接解决问题,因为在将其余代码重定向到创建的调度队列之前,您将在主线程中通过了极短的一段时间。
有更好的解决方案吗?
编辑:AFNetworking的完成块也是如此。