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 una custom property in GitHub
Ordine e importanza per @layer in CSS
Gestione dei nomi con le regole @layer in CSS
Anonimizzare i dati sensibili nei log di Azure Front Door
Usare il colore CSS per migliorare lo stile della pagina
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Creare una libreria CSS universale: Nav menu
Gestire il colore CSS con HWB
Utilizzare gRPC su App Service di Azure
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Creare una libreria CSS universale: Immagini