Meer informatie over async en await

Opdracht 1

Maak een methode die asynchroon een begroeting ophaalt.

Specificaties

  • Maak een methode (VerwelkomAsync()) die een Task<string> retourneert.
  • Laat deze methode na twee seconden "Welkom terug!" retourneren.
  • Roep deze methode aan met await en toon de output in de console.

Verwachte output

Welkom terug!

Nu jij

using System;
using System.Threading.Tasks;
 
class Program
{
    static async Task Main()
    {
        // Jouw code hier
    }
 
    // Maak hier de async methode aan
}

Opdracht 2

Laat twee async operaties na elkaar uitvoeren.

Specificaties

  • Maak twee methodesStap1Async() en Stap2Async() die elk een Task<string> retourneren.
  • Laat beide methodes één seconde wachten en een string retourneren (“Stap 1 voltooid”, “Stap 2 voltooid”).
  • Voer beide stappen na elkaar uit in Main()

Verwachte output

Stap 1 voltooid
Stap 2 voltooid

Nu jij

using System;
using System.Threading.Tasks;
 
class Program
{
    static async Task Main()
    {
        string stap1 = _________ Stap1Async();
        Console.WriteLine(stap1);
 
        string stap2 = _________ Stap2Async();
        Console.WriteLine(stap2);
    }
 
    static async _________ Stap1Async()
    {
        _________ Task.Delay(1000);
        return "Stap 1 voltooid";
    }
 
    static async _________ Stap2Async()
    {
        _________ Task.Delay(1000);
        return "Stap 2 voltooid";
    }
}

Opdracht 3

Simuleer het ophalen van data van een API.

Specificaties

  • Maak een methode HaalDataOpAsync() die “Data van server” retourneert na drie seconden wachten.
  • Laat in Main() zien dat het programma wacht, maar verdergaat (print bijvoorbeeld eerst “Start”).
  • Print daarna de opgehaalde data.

Verwachte output

Start
Data van server

Nu jij

using System;
using System.Threading.Tasks;
 
class Program
{
    static async Task Main()
    {
        Console.WriteLine("Start");
        string data = _________;
    }
 
    static _________ _________ HaalDataOpAsync()
    {
        // Voeg async methode toe
        return "Data van server";
    }
}

Opdracht 4

Laat twee async taken parallel uitvoeren.

Specificaties

  • Maak twee methodes, LaadAfbeeldingAsync() en LaadTekstAsync(). Beide methodes wachten twee seconden en retourneren een string.
  • Start beide methodes tegelijk en wacht tot ze klaar zijn.
  • Toon beide resultaten in de console.

Verwachte output

Afbeelding geladen
Tekst geladen

Nu jij

using System;
using System.Threading.Tasks;
 
class Program
{
    static async Task Main()
    {
        _________<string> afbeeldingTask = LaadAfbeeldingAsync();
        _________<string> tekstTask = LaadTekstAsync();
 
        string[] resultaten = await _________;
 
        foreach (var res in resultaten)
        {
            Console.WriteLine(res);
        }
    }
 
    // Maak hier twee async methodes aan
}

Opdracht 5

Simuleer een fout tijdens een async operatie.

Specificaties

  • Maak een methode LaadPaginaAsync() die een fout gooit na twee seconden wachten.
  • Vang de fout af in Main() en toon “Fout bij laden: [foutmelding]“.

Verwachte output

Fout bij laden: Server reageert niet

Nu jij

using System;
using System.Threading.Tasks;
 
class Program
{
    static async Task Main()
    {
        try
        {
            _________
        }
        catch(Exception ex)
        {
            _________
        }
    }
 
    // async methode hier
}