Co oznaczają słowa kluczowe async oraz await? W jakim celu ich używamy?

1 odpowiedź

Słowo kluczowe async oznacza metodę, która wykonywać będzie operację asynchroniczną. Metoda ta zwraca generyczny obiekt typu Task<>, którego rezultatem (Result) jest obiekt o wskazanym typie (np. Task<string> w rezultacie zwraca string), lub Task (jako odpowiednik dla typu pustego void).

Samo słowo kluczowe async nie czyni jednak metody asynchronicznej. Część kodu wykonywana asynchronicznie oznaczana jest słowem kluczowym await, które poprzedza wywołanie asynchronicznej metody (np. string myResult = await GetStringResultAsync(); ). Według ogólnie przyjętych zasad, metody asynchroniczne oznaczamy poprzez dodatkowe słówko Async na końcu nazwy metody.

Technikę tą stosuje się w przypadku czasochłonnych operacji. Metoda wywołana w taki sposób (w przeciwieństwie do synchronicznego wywołania) nie zablokuje głównego wątku aplikacji. Zamiast tego, aplikacja będzie mogła wykonywać dalsze operacje oczekując na dane z metody asynchronicznej. Gdy dane zostaną załadowane, aplikacja dokończy działanie bloku kodu w którym wystąpiło słowo kluczowe await.

Polecam filmik z warsztatów 4developers:
https://www.youtube.com/watch?v=kfYkCVXDSmk

Zaloguj się lub zarejestruj by dodać odpowiedź.


© 2019 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci