Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Создание расписания в программе (планировщика)   Найти похожие ветки 

 
NikeOLD   (2004-01-12 12:41) [0]

День добрый!
Появилась задача. Необходимо, чтобы программа начинала и прекращала выполнять определенные действия в определенный момент времени. Например, прекратила мониторинг в 19.00 и запустила его в 7.30 (время настраивается пользователем).
Обычный таймер не подходит. В MSDN описаны функции для waitable timer, но они получают в качестве интервала значение в наносекундах. Придется делать пересчет времения от текущего момента до заданного.
Где-то там же в MSDN видел интерфейсы, судя по заголовкам, способствующие созданию таких таймеров.
Вопрос, если кто сталкивался с подобным, пожалуйста подскажите наиболее удобный способ реализации, которая не грузила бы процессор.
P.S. Пока идет ожидание необходимо выполнять текущую работу, т.е. требуется многопоточность.


 
Игорь Шевченко ©   (2004-01-12 12:59) [1]

Команда at не помогает ?


 
NikeOLD   (2004-01-12 13:03) [2]

Немного подробнее можно?


 
Kerk ©   (2004-01-12 13:04) [3]


> NikeOLD   (12.01.04 13:03) [2]

напиши в командной строке "at /?" (без кавычек)
будет тебе подробнее


 
Anatoly Podgoretsky ©   (2004-01-12 13:09) [4]

В Windows есть встроеный планировщик и развитое АПИ для его управления, поиск в MSDN по слову Scheduler


 
NikeOLD   (2004-01-12 13:16) [5]

Спасибо Анатолий.

Господа выше вероятно не поняли или я плохо выразился. Мне не нужно тормозить программу, мне нужно тормознуть определенную задачу (функцию, поток, если желаете) программы, сама она должна оставаться в рабочем состоянии, выполняя другие задачи.


 
BiN ©   (2004-01-12 13:20) [6]

NikeOLD   (12.01.04 12:41) Обычный таймер не подходит.
разрешите спросить, почему?


 
NikeOLD   (2004-01-12 13:31) [7]


> разрешите спросить, почему?

Интервал в миллисекундах на больших промежутках времени, например 12-18 часов малоудобен.
В системе может присутствовать ограниченное количество таймеров. У меня в программе их и без того предостаточно. Да и таймеры, работающие в собственном потоке более эффективны (не отправляют лишние события окну).


 
BiN ©   (2004-01-12 13:38) [8]

если ты хочешь усыпить поток на определенное время, то и используй простой слип


 
GLFox   (2004-01-12 13:42) [9]

Попробуй сделать нитку (thread), а в ней GetTickCount...
При запуске один GetTickCount, а в процессе работы (через какие-нибудь Sleep-интервалы) проверяй разницу...


 
Anatoly Podgoretsky ©   (2004-01-12 13:44) [10]

NikeOLD   (12.01.04 13:31) [7]
Чем не удобен?
Зачем куча таймеров, когда всегда хватает одного и списка задач.


 
Anatoly Podgoretsky ©   (2004-01-12 13:45) [11]

На платформе НТ есть еще и WaitableTimer


 
NikeOLD   (2004-01-12 14:00) [12]


> На платформе НТ есть еще и WaitableTimer

Вот про них-то и хотелось бы услышать подробнее.
Ладно сейчас будем разбираться с MSDN.
Всем спасибо за внимание.



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.08 c
3-1077682613
_sulent
2004-02-25 07:16
2004.03.28
Переопредение стандартных компонентов


4-1074063655
comwad
2004-01-14 10:00
2004.03.28
Как нажать кнопку в другой программе (ЧУЖОЙ ПРОЦЕСС не мой)?


1-1078829136
Q
2004-03-09 13:45
2004.03.28
компонент для работы с dbf


14-1077994366
Lena
2004-02-28 21:52
2004.03.28
<B>Delphi</B>


14-1077819018
Soft
2004-02-26 21:10
2004.03.28
В Киеве можно купить удлинитель USB на 5 метров?