Scaricare file remoti di grandi dimensioni può richiedere un tempo piuttosto lungo, tale da incorrere nella sospensione dell'app.
In questo caso tutte le operazioni dell'app stessa vengono interrotte prima che il download sia completato.
In WinRT abbiamo la possibilità di eseguire questo tipo di operazioni in background grazie alla classe BackgroundDownloader, presente nel namespace Windows.Networking.BackgroundTransfer.
StorageFile file = await ApplicationData.Current.TemporaryFolder.CreateFileAsync("download.pdf", CreationCollisionOption.GenerateUniqueName); var downloader = new BackgroundDownloader(); DownloadOperation operation = downloader.CreateDownload(new Uri("http://repository.com/filedigrandidimensioni.pdf"), file);
Dopo aver creato il file destinatario del download è sufficiente creare l'istanza di BackgroundDownloader e richiamare il metodo CreateDownload specificando l'url della risorsa da scaricare.
Con CreateDownload il processo di download esce dal ciclo di vita dell'app e passa al sistema operativo, quindi sarà nostra cura monitorare il download e controllare lo stato del file, per poterlo utilizzare.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Testare l'invio dei messaggi con Event Hubs Data Explorer
Effettuare il refresh dei dati di una QuickGrid di Blazor
Cancellare una run di un workflow di GitHub
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Filtering sulle colonne in una QuickGrid di Blazor
Implementare l'infinite scroll con QuickGrid in Blazor Server
Miglioramenti nell'accessibilità con Angular CDK
Utilizzare Container Queries nominali
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel