Junior — Middle
89
Чем отличается выполнение функции асинхронного типа от использования оператора await для ожидаемого результата?
Answer from AI
sobes.tech AI
В C# функция асинхронного типа (объявленная с async) возвращает Task или Task<T>, позволяя выполнять операции без блокировки вызывающего потока. При вызове такой функции она сразу возвращает Task, который представляет будущий результат.
Оператор await используется для приостановки выполнения текущего метода до завершения Task, не блокируя поток. Это позволяет писать асинхронный код, похожий на синхронный, упрощая чтение и обработку результатов.
Иными словами:
- Вызов async-функции запускает асинхронную операцию и возвращает Task.
- await ожидает завершения этой операции, извлекая результат и продолжая выполнение после.
Пример:
async Task<int> GetNumberAsync() {
await Task.Delay(1000); // имитация асинхронной работы
return 42;
}
async Task Example() {
var task = GetNumberAsync(); // запускаем, но не ждём
int result = await task; // ждём результат без блокировки
Console.WriteLine(result);
}