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
using var client = new HttpClient();Wczytujemy potrzebną bibliotekę lub moduł.string html = await client.GetStringAsync("https://example.com");Tworzymy lub aktualizujemy zmienną, pole albo przypisanie.Console.WriteLine(html.Length);Wyświetlamy wartość, aby sprawdzić efekt działania programu.
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());
42
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.
Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.