Middle
132
questionbank
Как работает ключевое слово async и оператор await в C#?
Answer from AI
sobes.tech AI
async помечает метод как асинхронный, позволяя использовать в нем await. Это не делает сам метод асинхронным, но позволяет компилятору генерировать конечный автомат, который будет управлять выполнением.
await используется перед выражением, возвращающим Task или Task<T>. Оно приостанавливает выполнение текущего метода async до завершения ожидаемой задачи, не блокируя при этом поток выполнения. После завершения задачи, выполнение метода продолжается с точки после await. Если задача возвращает результат (Task<T>), то await возвращает этот результат.
public async Task<int> GetDataAsync()
{
// Асинхронная операция
HttpClient client = new HttpClient();
string result = await client.GetStringAsync("http://example.com");
// Выполнение продолжается после завершения GetStringAsync
// Обработка результата
return result.Length;
}