csharp-async
Fornece as melhores práticas para programação assíncrona em C#. Ajuda a escrever código mais eficiente e responsivo.
O que ela faz
Este agente de IA ajuda você a escrever código C# de forma mais eficiente e segura, seguindo as melhores práticas para programação assíncrona. Ele verifica seu código para garantir que ele seja rápido e evite erros comuns.
Quando usar
- ✓Ao escrever código C# que precisa fazer várias coisas ao mesmo tempo sem travar.
- ✓Quando você quer que seu programa responda mais rapidamente.
- ✓Para evitar erros comuns em código C# que lida com operações demoradas.
Exemplo do que pedir para a IA
“Revise este código C# e me diga se estou usando a programação assíncrona corretamente: [seu código C# aqui]”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O agente compara seu código com um conjunto de regras e recomendações para programação assíncrona em C#. Ele identifica onde você pode melhorar a nomeação, o tratamento de erros, o desempenho e evita armadilhas comuns.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill csharp-asyncOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/csharp-async/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Boas Práticas de Programação Assíncrona em C#
Seu objetivo é me ajudar a seguir as melhores práticas para programação assíncrona em C#.
Convenções de Nomenclatura
- Use o sufixo 'Async' para todos os métodos assíncronos
- Combine nomes de métodos com seus equivalentes síncronos quando aplicável (por exemplo,
GetDataAsync()paraGetData())
Tipos de Retorno
- Retorne
Task<T>quando o método retornar um valor - Retorne
Taskquando o método não retornar um valor - Considere
ValueTask<T>para cenários de alta performance para reduzir alocações - Evite retornar
voidpara métodos assíncronos, exceto para manipuladores de eventos
Tratamento de Exceções
- Use blocos try/catch em torno de expressões await
- Evite "engolir" exceções em métodos assíncronos
- Use
ConfigureAwait(false)quando apropriado para prevenir deadlocks em código de biblioteca - Propague exceções com
Task.FromException()em vez de lançar em métodos que retornam Task assíncrono
Performance
- Use
Task.WhenAll()para execução paralela de múltiplas tarefas - Use
Task.WhenAny()para implementar timeouts ou obter a primeira tarefa concluída - Evite async/await desnecessários quando apenas passando resultados de tarefas
- Considere tokens de cancelamento para operações de longa duração
Armadilhas Comuns
- Nunca use
.Wait(),.Result, ou.GetAwaiter().GetResult()em código assíncrono - Evite misturar código bloqueante e assíncrono
- Não crie métodos async void (exceto para manipuladores de eventos)
- Sempre use await em métodos que retornam Task
Ao revisar meu código C#, identifique esses problemas e sugira melhorias que sigam estas melhores práticas.
Perguntas frequentes
O que é programação assíncrona?
É uma forma de escrever código que permite que seu programa faça outras coisas enquanto espera que uma tarefa demorada (como buscar dados da internet) seja concluída, em vez de ficar parado esperando.
Por que devo usar as melhores práticas?
Seguir as melhores práticas torna seu código mais rápido, mais fácil de entender, menos propenso a erros e mais fácil de manter por você e por outros programadores.
O que são 'deadlocks'?
Deadlocks acontecem quando duas ou mais partes do seu código ficam esperando uma pela outra indefinidamente, fazendo com que o programa trave.
Detalhes
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5094
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC