Главная страница
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.029 c
3-1077198599
NoOne
2004-02-19 16:49
2004.03.28
Изменения в таблице


6-1073678165
Asail
2004-01-09 22:56
2004.03.28
Вопрос по Active Directory


1-1078558516
YurikGl
2004-03-06 10:35
2004.03.28
qtintf70.dll


3-1077629735
Desdechado
2004-02-24 16:35
2004.03.28
Странное поведение в TClientDataset


14-1078405955
panov
2004-03-04 16:12
2004.03.28
И все же. По поводу граблей при поиске файлов.