0Pricing
C# Academy · Lekcja

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!

Async i await: praca z kodem asynchronicznym — ilustracja 1

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ć async i await w przypadku zadań obejmujących operacje wejścia-wyjścia lub długotrwałe obliczenia.
  • Proszę unikać blokowania kodu asynchronicznego za pomocą .Result lub .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.

Async i await: praca z kodem asynchronicznym — ilustracja 10

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

  1. Typy generyczne w C#
  2. Async i await: praca z kodem asynchronicznym
  3. Wątki i zadania
  4. Delegaty i lambdy
  5. Refleksja w C#
← Powrót do C# Academy