Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Запуск задач по расписанию


Автор: zone51 10.4.2008, 01:45
Доброго времени суток товарищи. Помогите пожалуйста решить проблему:

Задача: 
В папке хранятся медиа файлы. Каждый файл проигрывается на большом мониторе В базе данных хранится информация о файлах а именно:
1)Время запуска каждого файла
2)Время остановки проигрывания файла

Робот проходит по списку файлов в потоке для каждого файла определяет время запуска и назначает на ближайшую дату запуска проигрывание какого то конкретного файла

Вопрос: как сделать такой планировщик на С++ билдере? То есть назначить какому то событию время запуска. А в принципе можно и сделать расписание. Как это сделать? Спасибо большое всем кто откликнется.

Автор: Данкинг 10.4.2008, 01:48
По таймеру ежесекундно проверять время. Если совпало с заданным для конкретного файла, то запускаем его. Так же и остановка.

Автор: zone51 10.4.2008, 02:04
Данкинг, 
Но это же не очень оптимально. 

Автор: Invisible_kid 10.4.2008, 10:24
zone51, есть идеи получше?

Автор: Rififi 10.4.2008, 10:34
zone51, 
- при запуске найти минимальную разницу во времени до следующего запуска
- в потоке спать до этого момента
- проснуться, запустить, пересчитать дельту t, уснуть.

Автор: Данкинг 10.4.2008, 10:41
Цитата(zone51 @ 10.4.2008,  03:04)
Данкинг, 
Но это же не очень оптимально.

В каком плане? А что тут такого неоптимального, ИМХО как раз вполне логично.

Автор: Lazin 10.4.2008, 11:21
Цитата(Rififi @  10.4.2008,  10:34 Найти цитируемый пост)
- при запуске найти минимальную разницу во времени до следующего запуска
- в потоке спать до этого момента
- проснуться, запустить, пересчитать дельту t, уснуть. 

а если я на системное время изменю  smile

Добавлено через 25 секунд
пока поток будет спать

Автор: Rififi 10.4.2008, 12:37
Lazin, 
WM_TIMECHANGE?

Автор: Lazin 11.4.2008, 11:14
да, но тогда нужно не ждать в отдельном потоке события от таймера, а обрабатывать сообщение от таймера и WM_TIMECHANGE в основном потоке, иначе реализация слишком сложная

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)