@estry

Есть ли решения для расписания в C#?

Например, есть класс MyClass и метод Void.
Мне нужно запускать метод Void 10 раз в сутки. 8 раз в промежутке времени с 6 утра до 23 вечера и 2 раза с 23 вечера до 6 утра. При этом интервалы запуска должны быть рандомные.
  • Вопрос задан
  • 336 просмотров
Решения вопроса 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Пусть будет так, через сутки повторяйте
// 8 раз в промежутке времени с 6 утра до 23 вечера и 2 раза с 23 вечера до 6 утра.
            var now = DateTime.Now;
            var startPeriod = (23 - 6) * 60;
            var startList = new List<int>();
            while (startList.Count < 8)
            {
                var val = RandomNumberGenerator.GetInt32(0, startPeriod);
                if (!startList.Contains(val))
                    startList.Add(val);
            }

            var runList = startList.OrderBy(x => x).Select(item => new DateTime(now.Year, now.Month, now.Day).AddMinutes(6 * 60 + item)).ToList();

            startList.Clear();
            var endPeriod = (1 + 6) * 60;
            while (startList.Count < 2)
            {
                var val = RandomNumberGenerator.GetInt32(0, endPeriod);
                if (!startList.Contains(val))
                    startList.Add(val);
            }

            runList.AddRange(startList.OrderBy(x => x).Select(item => new DateTime(now.Year, now.Month, now.Day).AddMinutes(23 * 60 + item)));
            ;
Ответ написан
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
windows task scheduler from c#
c# scheduled task .net core like cron
.. и так далее (до одури..
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы