在此示例中,我以默认优先级启动 100 NSURLSessionDataTask
,然后将最后一个设置为高优先级。然而,它似乎根本没有任何效果,因为最后一个任务仍然最后运行。
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,没有区别。