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
Proteggere le risorse Azure con private link e private endpoints
Ricevere notifiche sui test con Azure Load Testing
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Gestire il colore CSS con HWB
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Generare una User Delegation SAS in .NET per Azure Blob Storage
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Ottimizzare le performance usando Span<T> e il metodo Split
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Conoscere il rendering Server o WebAssembly a runtime in Blazor