Hello,
Welcome to our Microsoft Q&A platform!
>>Would there be any additional performance improvements if I'd move the download operation to a background service altogether? Or would this be unnecessary overhead?
Using Task.Run and Background task to download new assets, both of them won't affect the UI thread. But if you want to download large files, it's better to use background transfer API. Background Transfer runs separately from the calling app and is primarily designed for long-term transfer operations for resources like video, music, and large images and Httpclient needs to occupy the app's resources. For more information about how to use background transfer, you can refer to this document and here is an official sample, you can check it.
>>I don't need downloads to work while the app is not running.
You can pause your transfer before your app exits. For example, when you prepare to exit the app, you can use the following code in Suspending event to pause all download operations.
private void App_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e)
{
foreach (DownloadOperation download in activeDownloads)
{
BackgroundDownloadProgress currentProgress = download.Progress;
if (currentProgress.Status == BackgroundTransferStatus.Running)
{
download.Pause();
}else
{
......
}
}
}