Junior — Middle
Wat is het verschil tussen het uitvoeren van een asynchrone functie en het gebruik van de await-operator om een resultaat te wachten?
sobes.tech AI
Antwoord van 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);
}