Search code examples
c#windows-runtimewinrt-async

BackgroundDownloader only downloading 5 at once


I create 1,000 downloads using BackgroundDownloader.CreateDownload, then I queue up 100 of them by doing DownloadOperation.Start. If I watch the traffic in fiddler, only 5 of them at actually send out at once. When one finishes, another is sent out.

Is there a way to have more sent out concurrently?


Solution

  • Yes, there is a limit of 5 downloads at a time within Windows.Networking.BackgroundTransfer.

    You can extend it to up to 6 downloads at a time if you mark all your downloads as High Priority, i.e.:

    var download = backgroundDownloader.CreateDownload(...);
    download.Priority = BackgroundTransferPriority.High;
    Task<DownloadOperation> task = download.StartAsync(...).AsTask();