Tutorial Async/Await: Streams Assíncronas no ASP.NET Core
Cancelamento de Tarefas em C#: Exemplo e Boas Práticas
O cancelamento de tarefas em C# é um recurso fundamental para promover segurança, escalabilidade
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. e boa manutenção do código em cenários assíncronos. Para lidar com processos que podem não precisar finalizar completamente (seja para economizar recursos ou responder rapidamente a eventos externos), contamos com o CancellationToken
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações.. Neste tutorial, exploraremos como ele funciona, por que é importante e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. mostraremos exemplos reais de uso.
Entendendo o Propósito do Cancelamento de Tarefas🔗
- Em operações assíncronas
Repositório Assíncrono: Como Estruturar o Acesso a DadosDescubra como implementar um repositório assíncrono em C# seguindo boas práticas de separação de responsabilidades e eficiência de dados. de maior duração (como downloads, processamento de dados ou chamadas externas), pode surgir a necessidade de interromper a tarefa
🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes. em execução caso ela não seja mais necessária. - Cancelar tarefas previne consumo excessivo de recursos e melhora a experiência
🌐 LinkedIn para Devs .NET: Perfil que Atrai Recrutadores!Aprenda a otimizar seu perfil LinkedIn com dicas essenciais para devs .NET. Conquiste oportunidades e destaque suas habilidades! do usuário, pois não ficamos aguardando algo que já não tem mais relevância.
Conhecendo o CancellationToken e o CancellationTokenSource🔗
- CancellationToken
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações.: é uma estrutura (struct
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara.) em .NET que sinaliza quando uma operação deve ser cancelada. Ele não possui lógica para disparar o cancelamento por si só; apenas representa o estado de cancelado ou não cancelado. - CancellationTokenSource
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações. (CTS): responsável por criar
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. e controlar o sinal de cancelamento. A partir do CancellationTokenSource, obtemos o
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações.CancellationTokenque será passado às tarefas
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações.
Diferenças entre Threads, Tasks e Delegates em C#Aprenda as diferenças entre Threads, Tasks e Delegates em C#. Este tutorial prático ensina como otimizar a execução paralela e melhorar o desempenho. que podem ser canceladas.
Exemplo de uso para criar
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. um token e associá-lo a um método
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência.:
var cts = new CancellationTokenSource();
CancellationToken token = cts.Token;
// Método que aceita um token
await ProcessoLongoAsync(token);
// Quando quisermos cancelar a operação:
cts.Cancel();
Cancelando de Forma Segura e Observando o Token🔗
Para um código assíncrono
Refatorando Código Síncrono para Assíncrono: Guia Passo a PassoDescubra como transformar código síncrono em assíncrono em C# com práticas detalhadas, garantindo performance e escalabilidade em suas aplicações. responder ao cancelamento, normalmente verificamos se o token foi acionado em pelo menos um desses pontos:
Usar o método
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. ThrowIfCancellationRequested(). Quando
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. o token é cancelado, essa chamada lança uma OperationCanceledException.
2. Checagem manual com IsCancellationRequested
Verifica-se a propriedade
⚡ Propriedades: Get e Set com Elegância (e sem Campos Privados Bagunçados)!Aprenda como utilizar propriedades em C# para encapsular dados, validar informações e manter um código organizado, seguro e de fácil manutenção. IsCancellationRequested, e se for
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! true, encerra a tarefa
🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes. de forma graciosa (por exemplo, retornando imediatamente):
private async Task ProcessoLongoAsync(CancellationToken token)
{
// Exemplo de loop que faz parte de um processo maior
for (int i = 0; i < 100; i++)
{
// Verifica se foi solicitado cancelamento
if (token.IsCancellationRequested)
{
Console.WriteLine("Cancelamento detectado. Encerrando operação...");
return; // encerra o método de forma segura
}
// Simula uma operação assíncrona demorada
await Task.Delay(100, token);
}
Console.WriteLine("Processo finalizado sem cancelamento.");
}
Dica: Em muitos métodos do .NET que aceitamCancellationToken(comoTask.Delayou operações de E/S), o cancelamento também gerará uma exceção OperationCanceledException imediatamente.
Cancelamento em Fluxos de Trabalho e Boas Práticas🔗
1. Entregar o token
Sempre que possível, repasse o mesmo token para métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. internos que possam ser cancelados de forma coerente. Exemplo:
public async Task ExecutarProcessoCompleto(CancellationToken ct)
{
await Etapa1Async(ct);
await Etapa2Async(ct);
await Etapa3Async(ct);
}
Dessa forma, qualquer etapa consegue responder ao cancelamento em tempo hábil.
2. Tratar exceções
💥 Try/Catch: Domine Exceções antes que Elas Dominem Você!Descubra como tratar exceções em C# com práticas eficientes utilizando try/catch. Aprenda a gerenciar erros e aumentar a robustez do seu código. de cancelamento
Geralmente, capturamos OperationCanceledException para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! reconhecermos que o fluxo foi interrompido por escolha do chamador, sem tratar isso como erro. Exemplo:
try
{
await ProcessoLongoAsync(cts.Token);
}
catch (OperationCanceledException)
{
Console.WriteLine("Operação cancelada de forma controlada.");
}
3. Registrar ações de limpeza
Podemos usar o método
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. Register do CancellationToken para executar ações de limpeza assim que o cancelamento for requisitado. Isso é útil para liberar recursos
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações.
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. ou fechar conexões imediatamente:
var cts = new CancellationTokenSource();
// Registra uma ação que será executada quando o cancelamento for solicitado
cts.Token.Register(() => Console.WriteLine("Cancelamento solicitado! Limpando recursos..."));
// Agora qualquer tarefa que esteja usando cts.Token
// será notificada do cancelamento e executará a ação registrada
Cenários Comuns de Cancelamento🔗
- Cancelamento pelo Usuário: Em aplicações desktop ou web, o usuário clica em um botão para interromper a tarefa
🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes. em andamento. - Timeout
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação.: O CancellationTokenSourcepode ser configurado para expirar automaticamente após um período. A tarefa será cancelada ao atingir esse tempo limite
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações.
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação.:
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10));
await ProcessoLongoAsync(cts.Token);
// Após 10 segundos, cts será cancelado automaticamente
- Cancelamento em Cadeia: Várias tarefas
Diferenças entre Threads, Tasks e Delegates em C#Aprenda as diferenças entre Threads, Tasks e Delegates em C#. Este tutorial prático ensina como otimizar a execução paralela e melhorar o desempenho. encadeadas compartilham o mesmo token, de modo que uma única chamada de Cancel()interrompe todo o fluxo.
Resumo🔗
- CancellationToken
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações. é fundamental para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! cancelar tarefas
Diferenças entre Threads, Tasks e Delegates em C#Aprenda as diferenças entre Threads, Tasks e Delegates em C#. Este tutorial prático ensina como otimizar a execução paralela e melhorar o desempenho. de forma segura e evitar o desperdício de recursos
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos.. - Use
CancellationTokenSourcepara criar
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações.
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. e disparar o sinal de cancelamento. - Verifique o token regularmente (por
IsCancellationRequestedouThrowIfCancellationRequested) ou use APIs
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. que aceitam diretamente o CancellationToken.
🎯 CancellationToken: Cancele Operações Demoradas!Descubra como aplicar CancellationToken no C# para abortar operações com eficiência, evitando travas de UI e otimizando o uso de recursos das aplicações. - Ao capturar a exceção
💥 Try/Catch: Domine Exceções antes que Elas Dominem Você!Descubra como tratar exceções em C# com práticas eficientes utilizando try/catch. Aprenda a gerenciar erros e aumentar a robustez do seu código. OperationCanceledException, reconheça que a operação foi encerrada intencionalmente. - Aproveite as funcionalidades oferecidas: registro
Entendendo a arquitetura do MongoDB: documentos, coleções e bancos de dadosExplore os pilares da arquitetura MongoDB, integrando bancos de dados, coleções e documentos para impulsionar seu desenvolvimento em C# até 2025. de ações de limpeza (Register) e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. definição de timeouts
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação..
A adoção do cancelamento de forma sistemática torna o sistema mais responsivo, eficiente e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. confiável, deixando claro qual é o comportamento esperado quando não for mais necessário prosseguir com uma operação assíncrona
⚡ Async/Await: Programação Assíncrona sem Callbacks!Aprenda a aplicar Async/Await em C# para criar aplicações responsivas, evitar travamentos e melhorar a escalabilidade com exemplos práticos e dicas essenciais..
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- Documentação oficial do .NET sobre programação assíncrona, que abrange conceitos e práticas essenciais para a implementação de CancellationToken em operações assíncronas: learn.microsoft.com/pt-br/dotnet/csharp/programming-guide/concepts/async
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás