NSURLSessionTaskPriority似乎被忽略了?

NSURLSessionTaskPriority seems to be ignored?(NSURLSessionTaskPriority似乎被忽略了?)
本文介绍了NSURLSessionTaskPriority似乎被忽略了?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在本例中,我以默认优先级启动100NSURLSessionDataTask,然后将最后一个设置为高优先级。但是,它似乎完全没有效果,因为最后一个任务仍以最后运行结束。
NSURLSession *session = ...
NSURLRequest *request = ...

for (int i = 1; i<=100; i++) {
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSLog(@"%d", i);
    }];
    if (i == 100) {
        dataTask.priority = NSURLSessionTaskPriorityHigh;
    }
    [dataTask resume];
}
为什么此高优先级任务不在其他99个默认优先级任务之前运行?我预计,在添加高优先级任务之前,可能会开始执行一些较早的任务,但不是所有任务。

我甚至尝试过将HTTPMaximumConnectionsPerHost设置为1,但没有任何区别。

推荐答案

优先级不会影响应用程序端的优先级。对于主机来说,这是一个提示以一个优先级响应多个请求。主机可以完全忽略它。

若要向主机提供提示如何确定应用程序中的URL会话任务的优先级,请为每个任务指定优先级。指定优先级仅提供提示,不保证性能。[…]

[…]

您可以随时指定或更改任务的优先级,但并非所有网络协议都会在任务启动后响应更改。没有API可让您从主机的角度确定任务的有效优先级。

这篇关于NSURLSessionTaskPriority似乎被忽略了?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to stop UIBarButtonItem text from truncating?(如何阻止UIBarButtonItem文本被截断?)
The certificate for this server is invalid ( error: 9813 )(此服务器的证书无效(错误:9813))
How can I know when it#39;s safe to reuse a background NSURLSessionConfiguration id from another process?(我如何才能知道何时重新使用另一个进程中的后台NSURLSessionConfigurationID是安全的?)
NSURLSession: can#39;t get resume data after calling cancelByProducingResumeData(NSURLSession:调用ancelByProducingResumeData后无法获取简历数据)
How to make a NSURLSesssion GET request with cookies(如何使用Cookie发出NSURLSesssion GET请求)
What#39;s the correct usage of URLSession, create new one or reuse same one(URLSession的正确用法是创建新的URLSession还是重复使用相同的URLSession)