Interestingly here it states that NSOperationQueueDefaultMaxConcurrentOperationCount
that the maximum number of download operations is managed by the kernel at runtime, so that this value can change dynamically through application usage. I imagine should a download not be possible however, an exception would be thrown, to which you could handle.
On WindowsPhone 8
the maximum limit is 6 active requests at one time from here.
For WindowsPhone 8.1
/ UWP
you could use the BackgroundDownloader
, and let that manage things for you. There is a reported limit of only 5 simultaneous downloads occuring from here.
Despite platform specifics that may limit / open up the simultaneous download connections, I would create your own DownloadManager
class that allowed you to keep adding download tasks to, regardless of the current download queue. This manager class would then be able to handle the entire download process for you, including error handling and tracking on specific downloads / kicking off new downloads / notifications of downloads completed / failed.
Within it you could also set your own limits for the amount of simultaneous connections, and base the starting values on what ever values you wanted per platform, of course within OS
restrictions.
To be on the safe side, you probably never want to use the maximum number of concurrent downloads available, and use a few less, so speeds are faster and the user experience is better. The better your code handling of scenarios that prevent a download, would allow you to max out the simultaneous download connections as much as possible if you so wish.