Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
11-1056642764
belousov
2003-06-26 19:52
2004.03.28
Доступны ли в KOL компон. доступа к БД и соотв. визуальн. комп.


3-1077530992
Dimaz-z
2004-02-23 13:09
2004.03.28
Как в EhLib в гриде поставить нумерацию записей по порядку(1,2..)


4-1074492106
DeScriptor
2004-01-19 09:01
2004.03.28
Как добыть текст из окна типа MessageBox?


9-1062154209
Darrin
2003-08-29 14:50
2004.03.28
Сетевые шахматы


6-1073307972
Qwert622
2004-01-05 16:06
2004.03.28
Web сервер.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский