我使用的是AFNetworking 3.0,它使用NSURLSessionDataTask
,也使用operationQueue (AFURLSessionManager
的属性),它用作NSURLSession
的delegateQueue
所以简单地说
AFURLSessionManager.operationQueue
== NSURLSession.delegateQueue
AFNetworking 3码
self.operationQueue = [[NSOperationQueue alloc] init];
self.operationQueue.maxConcurrentOperationCount = 1;
self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:self.operationQueue];
苹果公司的文件。致NSURLSession delegateQueue
用于调度委托调用和完成处理程序的操作队列。队列不需要是串行队列。如果为零,会话将创建一个串行操作队列,用于执行所有委托方法调用和完成处理程序调用。
确实设置了,这意味着会有最大值。4同时处理NSURLSessionDataTask
**?将其设置为=1(AFNetworking的默认值)意味着一次只有一个任务,而另一个任务必须完成才能开始?**
或者我错了,这只会影响委托消息传递,这意味着将其设置为4可以触发4个不同线程上的委托回调.设置为1意味着回调始终位于同一个线程上,但任务无论如何都是并发处理的。
发布于 2016-10-01 14:10:36
该队列是委托队列,因此它只应影响委托消息传递。
当您创建一个NSURLSession
时,您会给它一个NSURLSessionConfiguration
类型的配置对象。
NSURLSessionConfiguration
包括一个属性HTTPMaximumConnectionsPerHost
,它允许您控制到单个主机的同时连接的数量。这是我所知道的唯一允许您控制连接数量的机制。
https://stackoverflow.com/questions/39807300
复制相似问题