Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
ВнизВопрос связан с перехватом времени Найти похожие ветки
← →
-=Germe$=- © (2006-07-14 16:22) [0]Как перехватить изменение времени без использования TTimer
← →
Сергей М. © (2006-07-14 16:29) [1]Удалено модератором
← →
Vlad © (2006-07-14 16:56) [2]
> -=Germe$=- © (14.07.06 16:22)
> Как перехватить изменение времени без использования TTimer
цикл в отдельном TThread - е ?
← →
Сергей М. © (2006-07-14 16:57) [3]Удалено модератором
← →
Jeer © (2006-07-14 17:11) [4]
> Как перехватить изменение времени без использования TTimer
Таблэтки прописанные дохтуром.
← →
Desdechado © (2006-07-14 17:18) [5]> без использования TTimer
Это такая религия?
← →
begin...end © (2006-07-14 17:22) [6]Что значит "перехватить изменение времени"?
← →
StriderMan © (2006-07-14 17:22) [7]Thread, в нем цикл сравнения времени начала цикла(DateTime) с Now
← →
Desdechado © (2006-07-14 17:25) [8]> цикл сравнения времени
Не боишься загрузить компьтер на полную только обработкой этого цикла?
← →
StriderMan © (2006-07-14 17:26) [9]
> Не боишься загрузить компьтер на полную только обработкой
> этого цикла?
sleep туда пихнуть
← →
StriderMan © (2006-07-14 17:32) [10]че-то туплю...
достаточно TThread со sleep"ом
← →
Zeqfreed © (2006-07-14 18:12) [11]
procedure TimeChangeHook();
begin
ShowMessage("Произошло очередное изменение времени!");
end;
while true do TimeChangeHook();
← →
-=Germe$=- © (2006-07-14 19:22) [12]Факт изменения системного времени на 1 секунду было 00:00:00 стало 00:00:01
← →
Zeqfreed © (2006-07-14 19:25) [13]> [12] -=Germe$=- © (14.07.06 19:22)
Какая стоит задача? Для чего это нужно? И почему не удовлетворяет TTimer?
← →
-=Germe$=- © (2006-07-14 19:26) [14]
> Какая стоит задача? Для чего это нужно? И почему не удовлетворяет
> TTimer?
Проц грузит...
← →
Zeqfreed © (2006-07-14 19:30) [15]> [14] -=Germe$=- © (14.07.06 19:26)
TTimer сам по себе ничего не грузит. Если что-то и может загружать процессор, то это тело события OnTimer, целиком подвластное к изменению программистом.
← →
-=Germe$=- © (2006-07-14 19:33) [16]ПОстоянно сверять время в TTimer не самый лучший вариант.... Можно пропустить нужное событие....
← →
Zeqfreed © (2006-07-14 19:37) [17]-=Germe$=- © (14.07.06 19:33) [16]
Поэтому я и спрашиваю в чем состоит цель «перехвата», чтобы подсказать наиболее подходящее решение.
← →
-=Germe$=- © (2006-07-14 19:44) [18]В определенное время должно произоити событие(сам его напишу)... Нужно это время с точностью до секунды схватить
← →
Zeqfreed © (2006-07-14 19:47) [19]> [18] -=Germe$=- © (14.07.06 19:44)
Точности обычного таймера для этого вполне хватит. Абсолютной точности в Windows не добиться.
← →
-=Germe$=- © (2006-07-14 19:50) [20]А если машинка слабая?
← →
Zeqfreed © (2006-07-14 19:52) [21]> [20] -=Germe$=- © (14.07.06 19:50)
Все остается в силе. Если уж процессору будет некогда выполнять событие, то его не выполнить никаким способом.
← →
begin...end © (2006-07-14 20:29) [22]> -=Germe$=- © (14.07.06 19:33) [16]
Зачем постоянно сверять? Установите соответствующий интервал таймера, чтобы он сработал один раз, когда нужное событие наступит, и всё. Если по каким-то причинам не устраивает TTimer (который является обёрткой SetTimer), можно использовать CreateWaitableTimer/SetWaitableTimer.
← →
Dib@zol (2006-07-18 13:45) [23]Да ёшкин лес, используй GetTickCount!!!! Помоему он в юните MMSystem...
← →
Palladin © (2006-07-18 13:49) [24]
> Dib@zol
Да ёшкин лес, разница между сравнением двух GetTickCount и двух переменных TDateTime практически никакая. И он в юните Windows.
> -=Germe$=- ©
Сомневаюсь что TTimer с установленным интервалом в 1000 мс будет жутко грузить процессор.
← →
Ketmar © (2006-07-18 20:54) [25]>Palladin © (18.07.06 13:49) [24]
не будет грузить. но может "заикаться". т.е. вызовы могут теряться, если система сильно загружена. впрочем, "это уже совсем другая история" (ц), и решается по-другому. %-)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.01 c