Async i await: praca z kodem asynchronicznym
Opanuj programowanie asynchroniczne, aby tworzyć responsywne aplikacje
Async i await: praca z kodem asynchronicznym to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 2 z 5. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 5 lekcji w sumie.
Wprowadzenie do async i await
Async i await: praca z kodem asynchronicznym
Witamy w kolejnej lekcji! W tej lekcji nauczą się Państwo używać async i await w języku C#, aby pisać kod asynchroniczny, który poprawia responsywność i wydajność aplikacji. Zaczynajmy!

Czym jest programowanie asynchroniczne
Czym jest programowanie asynchroniczne?
Programowanie asynchroniczne umożliwia niezależne wykonywanie zadań bez blokowania głównego wątku. Jest to szczególnie przydatne w przypadku zadań takich jak odczytywanie plików, pobieranie danych z Internetu czy komunikowanie się z bazami danych.
Najważniejsza informacja: Kod asynchroniczny poprawia responsywność aplikacji, szczególnie aplikacji interfejsu użytkownika i aplikacji serwerowych.
Zrozumienie async i await
Zrozumienie async i await
Async i await to słowa kluczowe w języku C#, które upraszczają programowanie asynchroniczne:
- async: Oznacza metodę jako asynchroniczną.
- await: Wstrzymuje wykonywanie metody do czasu ukończenia oczekiwanego zadania.
Najważniejsza informacja: Metody asynchroniczne zawsze zwracają obiekt typu Task lub Task<T>.
Tworzenie metody asynchronicznej
Tworzenie metody asynchronicznej
Utwórzmy metodę asynchroniczną, która zasymuluje długotrwałe zadanie. Przykład:
Wskazówka: Proszę używać Task.Delay() do symulowania opóźnień w operacjach asynchronicznych.
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...");
}
}
Zwracanie wartości z metody asynchronicznej
Zwracanie wartości z metody asynchronicznej
Metody asynchroniczne mogą zwracać wartości za pomocą Task<T>. Przykład:
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;
}
}
Obsługa wyjątków w kodzie asynchronicznym
Obsługa wyjątków w kodzie asynchronicznym
Proszę używać konstrukcji try-catch do obsługi wyjątków w metodach asynchronicznych. Przykład:
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));
}
}
Zadanie praktyczne
Zadanie praktyczne
Proszę utworzyć metodę asynchroniczną, która pobiera dane z adresu URL i wyświetla ich zawartość. Przykład:
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);
}
}
Najlepsze praktyki programowania asynchronicznego
Najlepsze praktyki programowania asynchronicznego
Oto kilka najlepszych praktyk:
- Proszę używać
asynciawaitw przypadku zadań obejmujących operacje wejścia-wyjścia lub długotrwałe obliczenia. - Proszę unikać blokowania kodu asynchronicznego za pomocą
.Resultlub.Wait(). - Proszę obsługiwać wyjątki, aby zapobiegać nieobsłużonym błędom.
- W kodzie bibliotek proszę używać
ConfigureAwait(false), aby unikać zakleszczeń.
Wskazówka: Proszę pisać zwięzłe metody asynchroniczne, z których każda odpowiada za jedno zadanie.
Świetna robota!
Świetna robota!
Gratulacje! Nauczyli się Państwo używać async i await do pisania kodu asynchronicznego w języku C#. W następnej lekcji poznają Państwo wątki i zadania używane w programowaniu równoległym. Proszę kontynuować naukę programowania!
Proszę kliknąć Continue, aby przejść do następnej lekcji.

Często zadawane pytania
Czy lekcja „Async i await: praca z kodem asynchronicznym” jest bezpłatna?
Tak — pełny tekst „Async i await: praca z kodem asynchronicznym” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 5 lekcji w sumie.
Co nauczysz się w „Async i await: praca z kodem asynchronicznym”?
Opanuj programowanie asynchroniczne, aby tworzyć responsywne aplikacje Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C# Academy?
Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 5.
Ile czasu zajmuje lekcja „Async i await: praca z kodem asynchronicznym”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?
Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Typy generyczne w C#
- Async i await: praca z kodem asynchronicznym
- Wątki i zadania
- Delegaty i lambdy
- Refleksja w C#