Dalej•LEKCJA 23 / 24

async i await

Kurs C# · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.

C# umożliwia asynchroniczne wykonywanie operacji I/O.

Jak to działa?

async i await przydają się m.in. do HTTP i pracy z plikami. Task<T> reprezentuje operację, która później zwróci wynik.

Przykład 1 — poznaj zapis

using var client = new HttpClient();
string html = await client.GetStringAsync("https://example.com");
Console.WriteLine(html.Length);

Przykład wymaga połączenia z internetem i jest przeznaczony dla nowoczesnego projektu .NET.

Przeczytaj kod linijka po linijce

  1. using var client = new HttpClient();Wczytujemy potrzebną bibliotekę lub moduł.
  2. string html = await client.GetStringAsync("https://example.com");Tworzymy lub aktualizujemy zmienną, pole albo przypisanie.
  3. Console.WriteLine(html.Length);Wyświetlamy wartość, aby sprawdzić efekt działania programu.
Oczekiwany wynik / efektpo uruchomieniu przykładu
Długość pobranego HTML zależy od odpowiedzi serwera i połączenia.

Przykład 2 — podobny problem, inne dane

Teraz przyjrzyj się drugiemu przykładowi. Zwróć uwagę na to, co zmieniło się w kodzie, a co w wyniku. Spróbuj przewidzieć rezultat przed przeczytaniem odpowiedzi.

async Task<int> Answer() { await Task.Delay(5); return 42; }
Console.WriteLine(await Answer());
Wynik drugiego przykładupo uruchomieniu przykładu
42
Sprawdź, czy rozumiesz

Wróć do pierwszego przykładu, zmień jedną wartość i spróbuj samodzielnie przewidzieć wynik. Następnie uruchom kod i porównaj rezultat. W ten sposób nauczysz się nie tylko przepisywać instrukcje, ale rozumieć ich działanie.

Spróbuj samodzielnie

Dodaj try/catch na wypadek błędu pobierania.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.