0Pricing
C# Academy · Aula

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!

Async e Await: trabalhando com código assíncrono — ilustração 1

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 async e await para tarefas que envolvam operações de E/S ou cálculos de longa duração.
  • Evite bloquear código assíncrono com .Result ou .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.

Async e Await: trabalhando com código assíncrono — ilustração 10

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

  1. Genéricos em C#
  2. Async e Await: trabalhando com código assíncrono
  3. Entendendo encadeamentos e tarefas
  4. Explorando delegados e lambdas
  5. Entendendo a reflexão em C#
← Voltar para C# Academy