Tópicos importantes de C#

Programação assíncrona com async e await em C#

Nesta lição, você vai escrever código assíncrono com async e await para esperar uma tarefa sem bloquear o programa.

Introdução

Quando o programa precisa esperar operações demoradas, como ler um arquivo, chamar uma API ou aguardar um temporizador, a programação assíncrona (asynchronous) evita que a thread fique bloqueada durante a espera. O C# oferece as palavras-chave async e await para escrever código assíncrono tão legível quanto código sequencial comum.

O método Main é declarado como static async Task. A instrução await Task.Delay(20) pausa o método por 20 milissegundos sem bloquear a thread em execução. Quando a espera termina, o método continua exatamente daquele ponto e imprime Async work complete.

Exemplo de C# executável

C#
Rodar código →
Program.cs
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        await Task.Delay(20);
        Console.WriteLine("Async work complete");
    }
}
Resultado da execução
Async work complete

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios