Здравствуйте, varenikAA, Вы писали:
AA>Как правильно организовать цикл с большой задержкой, есть ли разница?
если нужно раз в день неделю — имхо лучше шедуллер в ОС и запуск отдельной автономной задачи.
за сутки компьютер могут несколько раз перегрузить , в таком коде отсчет начнется заново и если будут перегружать чаще чем сутки — то момент запуска кода никогда не наступит.
Придется по сути писать свой шедуллер. Но лучше использовать готовые системные.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, okon, Вы писали:
O>Придется по сути писать свой шедуллер. Но лучше использовать готовые системные.
Тут кол-во срабатываний не особо критично, ПО может работать очень долго без перезапуска.
Интересно, какой вариант надежней, менее требователен к ресурсам.
Здравствуйте, varenikAA, Вы писали:
AA>Здравствуйте, okon, Вы писали:
O>>Придется по сути писать свой шедуллер. Но лучше использовать готовые системные. AA>Тут кол-во срабатываний не особо критично, ПО может работать очень долго без перезапуска. AA>Интересно, какой вариант надежней, менее требователен к ресурсам.
А что такое надежность в твоей задаче ?
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Технически в третьем явно больше операций чем в первом, так что он будет как бы хуже. Но в реальности эту разницу будет не заметно.
Во втором как бы еще меньше, но он отличается от первого и третьего по логике — в нем могут быть параллельные срабатывания если "do something" будет выполняться дольше периода задержки.
IHostedService/BackgroundService только дает фоновую задачу, которая будет запущена инфраструктурой, но если ты в ней хочешь делать что-то, что будет срабатывать каждые Х минуто, то что? В примере по твоей ссылке как раз Task.Delay используется для этого случая.
Здравствуйте, BlackEric, Вы писали:
BE>Если asp.net, то можно использовать https://www.hangfire.io/ или
не, настольная прога WPF BE>Цикл с задержкой в дни выглядит как-то ненадежно.
не обратил, внимание, там конечно сначала выполняется, потом задержка на 1 день. Чаще просто не нужно.
Здравствуйте, Miroff, Вы писали:
AA>>Как правильно организовать цикл с большой задержкой, есть ли разница? M>А что, cron flavor в дотнет не завезли? Quartz, какой-нибудь
Quartz есть, но если все что тебе надо — это в паре мест периодически с примерно равными интервалами делать какую-то проверку, то его подключение выглядит избыточным. Он хорош когда нужны различные расписания, восстановления при перезапуске и подобные уже более сложные случаи.