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; }