Task.Delay
делает то, что говорит на жестяной банке, и вот о чем.
Реализация IScheduledTask
/ IHostedService
предоставляет несколько функций.
- У вас есть автономный класс, в который могут быть добавлены зависимости для запуска кода в собственной области видимости.
IHostedService
предоставляет механизм для плавного отключения.В приложении ASP.NET приложение может быть переработано, у вас нет гарантии, что код, который вы вызываете Task.Delay(1000*60)
, будет выполнен.Используя решение IScheduledTask
, вы реализуете метод StopAsync()
, чтобы обеспечить постепенную отмену Задачи.Вы также можете настроить время ожидания отключения конфигурации хоста.
Ваш вопрос касается консольного приложения, и из здесь начиная с .Net Core 2.1 WebHost будет заменен на Generic Host и, следовательно, больше не будет относиться конкретно кASP.NET.
Касательная : У меня есть связанный вопрос Тайм-аут отключения ASP.Net Core 2.0, какие проблемы можно ожидать при использовании очень длительного времени из 2 минут? <- У меня не было проблем с производством за время, превышающее 2 мин. </p>