Exemple #1
0
        private async void BtnProcessar_Click(object sender, RoutedEventArgs e)
        {
            BtnCancelar.IsEnabled   = true;
            pgsProgresso.Visibility = Visibility.Visible;
            BtnProcessar.IsEnabled  = false;
            var btnContent = BtnProcessar.Content;

            BtnProcessar.Content = "Processando...";
            AtualizarView(new List <string>(), TimeSpan.Zero);
            _cts = new CancellationTokenSource();
            var contas = r_Repositorio.GetContaClientes();

            pgsProgresso.Maximum = contas.Count();
            LimparView();
            var inicio   = DateTime.Now;
            var progress = new ByteBankProgress <string>(str => pgsProgresso.Value++);

            try
            {
                var resultado = await ConsolidarContas(contas, progress, _cts.Token);

                var fim = DateTime.Now;
                AtualizarView(resultado, fim - inicio);
            }
            catch (OperationCanceledException)
            {
                TxtTempo.Text = "Operação cancelada pelo usuário";
            }
            finally
            {
                BtnProcessar.IsEnabled = true;
                BtnProcessar.Content   = btnContent;
                BtnCancelar.IsEnabled  = false;
            }
        }
        private async void BtnProcessar_Click(object sender, RoutedEventArgs e)
        {
            var contas          = r_Repositorio.GetContaClientes();
            var taskSchedulerUI = TaskScheduler.FromCurrentSynchronizationContext();

            BtnProcessar.IsEnabled = false;

            _cts = new CancellationTokenSource();

            PgsProgresso.Maximum = contas.Count();

            LimparView();
            var inicio = DateTime.Now;

            BtnCancelar.IsEnabled = true;
            var byteBankProgress       = new ByteBankProgress <String>(str => PgsProgresso.Value++);
            Progress <string> progress = new Progress <String>(str => PgsProgresso.Value++);

            try
            {
                var resultado = await ConsolidarContas(contas, progress, _cts.Token);

                var fim = DateTime.Now;
                AtualizarView(resultado, fim - inicio);
            }
            catch (OperationCanceledException)
            {
                TxtTempo.Text = "Operação cancelada pelo usuário";
            }
            finally
            {
                BtnProcessar.IsEnabled = true;
                BtnCancelar.IsEnabled  = false;
            }

            BtnProcessar.IsEnabled = true;
        }