Middle
Jak działają słowa kluczowe async i operator await w C#?
sobes.tech AI
Odpowiedź od AI
async oznacza, że metoda jest asynchroniczna, co pozwala na użycie await w jej wnętrzu. To nie czyni samej metody asynchroniczną, ale pozwala kompilatorowi wygenerować automat stanu, który będzie zarządzał wykonaniem.
await jest używane przed wyrażeniem zwracającym Task lub Task<T>. Wstrzymuje wykonanie bieżącej metody async do czasu zakończenia oczekiwanej zadania, nie blokując wątku wykonawczego. Po zakończeniu zadania, wykonanie metody kontynuuje się od miejsca po await. Jeśli zadanie zwraca wynik (Task<T>), await zwraca ten wynik.
public async Task<int> GetDataAsync()
{
// Asynchroniczna operacja
HttpClient client = new HttpClient();
string result = await client.GetStringAsync("http://example.com");
// Kontynuacja po zakończeniu GetStringAsync
// Przetwarzanie wyniku
return result.Length;
}