Форум: "WinAPI";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизСоздание расписания в программе (планировщика) Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.03 c