Функция по расписанию

139
22 ноября 2018, 21:40

Есть два массива с временем(start[8:00, 8:50, 9:50], stop[8:40, 9:30, 10:30])

Как сделать так, чтобы при запуске программы мы получали текущее время и смотрели входит ли оно в временной промежуток, если да то мы выполняем функцию. Как можно подобное реализовать

Answer 1

Всё очень просто. Если вы используете GUI приложение, то цикл формируете на DispatcherTimer с периодом срабатывания в 1 секунду (к примеру). Для консольного приложения можно использовать Thread.

И каждую итерацию цикла проверяете флаг состояния вашей задачи (IDLE, WORK). Для каждого состояния свой обработчик (по смыслу схож) который проверяет наличие вхождения в текущее значение времени и вызывает срабатывания действия stop() или start().

Как сравнивать? Парсите ваш массив с временем начала и окончания, разбивая строку на часы и минуты. Далее берёте текущее значение даты и сравниваете часы и минуты, до первого вхождения. При вхождении меняете флаг и изменяете состояние вашей задачи.

В итоге получается простой программируемый триггер.

READ ALSO
Узнаем ширину панели с кнопками на сенсорном экране

Узнаем ширину панели с кнопками на сенсорном экране

Хотел узнать как в Android API можно узнать ширину панели с кнопками (назад, домой, окна)

162
Как равномерно растянуть элементы в StackPanel?

Как равномерно растянуть элементы в StackPanel?

В общем, есть такой StackPanel:

159
“Не отпускаются” клавиши

“Не отпускаются” клавиши

Открываю блокнот, нажимаю клавишу пробел, срабатывает комбинация ctrl+s и после этого, такое ощущение, будто эти клавиши нажаты остаются навсегда...

156
Утечка памяти при работе с графикой

Утечка памяти при работе с графикой

В общем, есть окно, где есть комбобокс с десятками ссылок на картинку весом ~2 мб и разрешением 5037x3657

163