Jak używać asynchronizacji i oczekiwać w C#

Jak używać asynchronizacji i oczekiwać w C#
Asynchronizacja i oczekiwanie to potężne metody w C#, które pozwalają wykonywać czasochłonne operacje bez blokowania głównego wątku. Jedną z kluczowych funkcji C#, która obsługuje programowanie asynchroniczne, jest async () i czeka (). W tym artykule wyjaśni, czym są asynchronizacja i czeka i jak są one używane w programowaniu C#.

Co to jest asynchronizacja w C#

Metoda async () działa synchronicznie, aż osiągnie swój pierwszy wyrażenie czekające. Async () jest używany przed typem powrotu metody, a podpis metody musi zwrócić zadanie lub obiekt zadania, gdzie t jest typem wartości, którą zwraca metoda.

Async ()

// asynchronicznie poczekaj na zakończenie operacji
// Zwróć obiekt zadania lub zadania

Oto zmienny w składni:

  • : Typ zwrotu metody, może to być dowolny prawidłowy typ danych C#.
  • : Nazwa metody.
  • : Parametry metody. Mogą to być dowolne prawidłowe typy danych C#.

Czego czeka w C#

Aka Atait () służy do zatrzymania wykonywania metody do momentu zakończenia operacji asynchronicznej, oto składnia dla tej funkcji:

czekać na

Oto zmienny w składni:

  • : Rodzaj wyniku, który zwraca operacja asynchroniczna.
  • : Zmienna, która przechowuje wynik pracy asynchronicznej.
  • : Wywołanie metody wykonują działanie asynchroniczne.

Jak używać asynchronizacji i oczekiwać w C#

Korzystając z asynchronizacji i oczekiwania, możesz utworzyć kod, który jest bardziej responsywny i wydajny, ponieważ uwalnia główny wątek do obsługi innych operacji, podczas gdy operacje asynchroniczne działają w tle. Poniżej znajduje się przykładowy kod, który używa zarówno asynchronizacji, jak i oczekują i pokazuje, jak używać asynchronizacji i oczekiwać do wykonywania operacji asynchronicznych w C#.

za pomocą systemu;
za pomocą systemu.Gwintowanie.Zadania;
Program klasowy

Statyczne pustka główna (String [] args)

Konsola.WriteLine („Rozpocznij obliczanie”);
// Rozpocznij zadanie, aby dodać 2 i 3 asynchroniczne
Zadanie zadanie1 = addasync (2, 3);
Konsola.WriteLine („Dodanie…”);
// Rozpocznij zadanie odejmowania 5 od 10 asynchronicznych
Zadanie zadanie2 = subtraktactync (10, 5);
Konsola.Writeline („Odejmowanie…”);
// Poczekaj, aż pierwsze zadanie się zakończy i uzyskaj wynik
int wynik1 = zadanie1.Wynik;
Konsola.WriteLine ($ "2 + 3 = wynik1");
// Poczekaj, aż drugie zadanie się zakończy i uzyskaj wynik
int wynik2 = zadanie2.Wynik;
Konsola.WriteLine ($ "10 - 5 = wynik2");
Konsola.Writeline („obliczenia zakończone!");

// metoda, która dodaje asynchronicznie dwie liczby
statyczne async zadanieDDASYNC (int a, int b)

czekaj na zadanie.Opóźnienie (1000); // Symuluj pewne opóźnienie
zwrócić A + B;

// Metoda, która odejmuje dwie liczby asynchronicznie
statyczne async zadania

czekaj na zadanie.Opóźnienie (1000); // Symuluj pewne opóźnienie
zwrócić a - b;

W kodzie metody AddAsync i SubtractAsync używają słowa kluczowego oczekiwania, aby wskazać, że wykonują one działanie asynchroniczne, co w tym przypadku jest symulowanym opóźnieniem za pomocą tej funkcji zadania (). To pozwala metodom natychmiastowe powrót bez blokowania głównego wątku.

W głównej metodzie metody addAsync i odejmowania są wywoływane przy użyciu słowa kluczowego czekającego do asynchronicznego oczekiwania na wyniki operacji. To pozwala programowi kontynuować działanie i wykonywanie innych zadań podczas oczekiwania na zakończenie operacji asynchronicznych.

Po zakończeniu zadań właściwość wyniku jest używana do odzyskania wyniku każdego zadania i wydruku. Oto wyjście kodu, który omówiliśmy wcześniej, który wykonuje dodanie i odejmowanie przy użyciu asynchronizacji i czeka::

Wniosek

Programowanie asynchroniczne może zapewnić kilka korzyści dla Twojej aplikacji, w tym lepszą wydajność, zwiększoną reakcję i uproszczony kod. Korzystając z technik programowania asynchronicznego, możesz tworzyć bardziej wydajne i responsywne aplikacje w C#. Słowo kluczowe async jest używane z nazwą funkcji, aby działała asynchronicznie, podczas gdy oczekiwanie zawiedzie operację, dopóki metoda asynchroniczna zakończy wykonywanie i wydrukuje wynik.