Что будет после трёх секунд ожидания?
Task request = LoadAsync();
await request.WaitAsync(
TimeSpan.FromSeconds(3));
❤️ — LoadAsync автоматически остановится
👍 — ожидание завершится по таймауту, операция может продолжиться
🔥 — заблокируется текущий поток
Ответ:
👍 Если request не успеет завершиться, await выбросит TimeoutException. WaitAsync ограничивает ожидание, а не останавливает исходную операцию. Для её отмены нужен CancellationToken, переданный в LoadAsync, и поддержка отмены внутри этой операции.
Не стоит считать таймаут гарантией, что работа больше не выполняется. Для HTTP-запроса, записи в файл или внешнего задания это разные обещания: «я больше не жду» и «операция действительно остановлена».
🔗 Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#dotnet_challenge