Nello script #95 abbiamo visto com'è possibile eseguire il download di file remoti in background, grazie a BackgroundDownloader, presente nel namespace Windows.Networking.BackgroundTransfer.
I download in background escono dal ciclo di vita dell'app, quindi dobbiamo monitorarli grazie al metodo GetCurrentDownloadsAsync di BackgroundDownloader.
Il metodo restituisce una collezione di DownloadOperation di cui possiamo recuperare l'IAsyncOperationWithProgress con AttachAsync e staccare il suo task con il noto overload AsTask.
IReadOnlyList<DownloadOperation> downloads = await BackgroundDownloader.GetCurrentDownloadsAsync();
foreach (var download in downloads)
{
var progress = new Progress<DownloadOperation>(OnProgress);
try
{
IAsyncOperationWithProgress<DownloadOperation, DownloadOperation> downloadOperation = download.AttachAsync();
await downloadOperation.AsTask(progress);
}
catch (Exception ex)
{
status.Text = ex.Message;
}
}Al metodo AsTask possiamo passare come parametro un oggetto di tipo Progress
private void OnProgress(DownloadOperation operation)
{
var uri = operation.RequestedUri;
status.Text = operation.Progress.Status.ToString();
progress.Text = (operation.Progress.BytesReceived * 100 / operation.Progress.TotalBytesToReceive).ToString("0");
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare un extension method per applicare condizionalmente una Where in una query LINQ per Entity Framework
Usare i generics di C# con la clausola nameof in modo semplificato
Utilizzo delle stepped value functions nel CSS
Utilizzare i named query filter di Entity Framework
Integrare OpenTelemetry direttamente in Azure Monitor
Self-healing degli unit test con Copilot in GitHub
Operazioni tra insiemi di array in Javascript
Utilizzare le librerie native di .NET per decomprimere un file zip
Arricchire l'interfaccia di .NET Aspire
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Validazione personalizzata nelle Minimal API di ASP.NET Core
Creare una file based app con C#
I più letti di oggi
- Leggere i parametri da riga di comando in una file based app .NET
- Building Custom Developer Agents
- Build 2015: segui con noi tutte le novità per gli sviluppatori in diretta da San Francisco
- Build 2014: tutte le novità per gli sviluppatori in diretta da San Francisco
- Build 2016: segui con noi in live streaming!


