Async e Await: trabalhando com código assíncrono
Domine a programação assíncrona para criar aplicativos responsivos
Async e Await: trabalhando com código assíncrono é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 2 de 5. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 5 aulas no total.
Introdução a async e aguardar
async e aguardar: trabalhando com código assíncrono
Boas-vindas à próxima lição! Nesta lição, você aprenderá a usar async e aguardar em C# para escrever código assíncrono que melhora a capacidade de resposta e o desempenho dos aplicativos. Vamos começar!

O que é programação assíncrona?
O que é programação assíncrona?
A programação assíncrona permite que as tarefas sejam executadas de forma independente sem bloquear a linha de execução principal. Isso é especialmente útil para tarefas como ler arquivos, buscar dados na internet ou interagir com bancos de dados.
Ponto principal: o código assíncrono melhora a capacidade de resposta dos aplicativos, especialmente em interfaces de usuário e aplicações de servidor.
Entendendo async e aguardar
Entendendo async e aguardar
async e aguardar são palavras-chave em C# que simplificam a programação assíncrona:
- async: marca um método como assíncrono.
- aguardar: pausa a execução do método até que a tarefa aguardada seja concluída.
Ponto principal: os métodos async sempre retornam uma Task ou uma Task<T>.
Criando um método assíncrono
Criando um método assíncrono
Vamos criar um método assíncrono para simular uma tarefa de longa duração. Exemplo:
Dica: use Task.Delay() para simular atrasos em operações assíncronas.
using System;
using System.Threading.Tasks;
class Program {
static async Task Main() {
Console.WriteLine("Starting task...");
await PerformTask();
Console.WriteLine("Task completed!");
}
static async Task PerformTask() {
await Task.Delay(3000); // Simulates a 3-second delay
Console.WriteLine("Task is running...");
}
}
Retornando um valor de um método assíncrono
Retornando um valor de um método assíncrono
Os métodos async podem retornar valores usando Task<T>. Exemplo:
using System;
using System.Threading.Tasks;
class Program {
static async Task Main() {
int result = await CalculateSumAsync(10, 20);
Console.WriteLine("Result: " + result);
}
static async Task<int> CalculateSumAsync(int a, int b) {
await Task.Delay(1000); // Simulates a delay
return a + b;
}
}
Tratando exceções em código assíncrono
Tratando exceções em código assíncrono
Use try-catch para tratar exceções em métodos assíncronos. Exemplo:
using System;
using System.Threading.Tasks;
class Program {
static async Task Main() {
try {
await DivideAsync(10, 0);
} catch (Exception ex) {
Console.WriteLine("Error: " + ex.Message);
}
}
static async Task DivideAsync(int a, int b) {
await Task.Delay(1000);
if (b == 0) throw new DivideByZeroException("Cannot divide by zero.");
Console.WriteLine("Result: " + (a / b));
}
}
Desafio prático
Desafio prático
Crie um método assíncrono que busque dados de uma URL e exiba seu conteúdo. Exemplo:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
string url = "https://jsonplaceholder.typicode.com/todos/1";
string data = await FetchDataAsync(url);
Console.WriteLine("Data: " + data);
}
static async Task<string> FetchDataAsync(string url) {
using HttpClient client = new HttpClient();
return await client.GetStringAsync(url);
}
}
Práticas recomendadas para programação assíncrona
Práticas recomendadas para programação assíncrona
Veja algumas práticas recomendadas:
- Use
asynceawaitpara tarefas que envolvam operações de E/S ou cálculos de longa duração. - Evite bloquear código assíncrono com
.Resultou.Wait(). - Trate exceções para evitar erros não tratados.
- Use
ConfigureAwait(false)em código de biblioteca para evitar impasses.
Dica: mantenha seus métodos async concisos e concentrados em uma única responsabilidade.
Ótimo trabalho!
Ótimo trabalho!
Parabéns! Você aprendeu a usar async e await para escrever código assíncrono em C#. Na próxima lição, exploraremos threads e tarefas para programação paralela. Vamos continuar programando!
Clique em Continuar para passar à próxima lição.

Perguntas Frequentes
A aula “Async e Await: trabalhando com código assíncrono” é grátis?
Sim — o texto completo de “Async e Await: trabalhando com código assíncrono” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 5 aulas no total.
O que vou aprender em “Async e Await: trabalhando com código assíncrono”?
Domine a programação assíncrona para criar aplicativos responsivos Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 5.
Quanto tempo leva a aula “Async e Await: trabalhando com código assíncrono”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Genéricos em C#
- Async e Await: trabalhando com código assíncrono
- Entendendo encadeamentos e tarefas
- Explorando delegados e lambdas
- Entendendo a reflexão em C#