Cómo implementar IAsyncOperationWithProgress

Cómo implementar IAsyncOperationWithProgress

Este es un ejemplo del uso de IAsyncOperationWithProgress para mostrar el progreso de la instalación de un archivo XAP mediante programación. Soy bastante nuevo en el desarrollo de Win8, así que no estoy seguro de si es completamente idiomático.

Tenga en cuenta el Dispatcher.BeginInvoke para ordenar el progreso de vuelta al subproceso de la interfaz de usuario. Espero que ayude:

private async void InstallApp(string name, Uri uri)
{
    try
    {
        StatusTextBlock.Text = "Installing app";
        var installTask = InstallationManager.AddPackageAsync(name, uri);

        installTask.Progress = (installResult, progress) => Dispatcher.BeginInvoke(() =>
        {
            StatusTextBlock.Text = "Progress: " + progress;
        });

        var result = await installTask;
        StatusTextBlock.Text = "Done: " + result.InstallState.ToString();
    }
    catch (Exception ex)
    {
        StatusTextBlock.Text = "Failed to install: " + ex.Message;
    }
}