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