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

Вниз

TTimer...   Найти похожие ветки 

 
Eagle Owl ©   (2003-12-01 22:05) [0]

Вечер добрый, мастера!
Есть объект Timer типа TTimer, интервал задан в 20мс.
Кто знает, как будет вызываться процедура OnTimer, если код в ней не успевает выполниться за это время.
Спасибо.


 
MagaSoft ©   (2003-12-01 22:23) [1]

поясните вопрос, а то что-то я не понял, вас интересует в какой последовательности?


 
Eagle Owl ©   (2003-12-01 22:33) [2]

Вызывается первый раз Timer1.Timer, через 20мс по идее она должна вызываться ещё раз и так далее. Но если код не успевает выполниться за эти 20мс, что будет происходить с вызовом этой процедуры?


 
BlackKing   (2003-12-01 23:54) [3]

jesli procedura ne otdel"nij process, to timer ne srabotajet poka procedura ne otrabotajet svojo.


 
ЮЮ ©   (2003-12-02 02:29) [4]

>BlackKing (01.12.03 23:54) [3]
При условии, что в обработчике нет Application.ProcessMassage


 
Спрашивающий_   (2003-12-02 06:55) [5]

Если я не ошибаюсь минимальное число млсек с которым вообще
TTimer срабатывает в районе 50 ms


 
TUser ©   (2003-12-02 11:46) [6]


> 50 ms

55 ms


 
Семен Сорокин ©   (2003-12-02 11:54) [7]

> 55 ms

только что измерил - 57.36 ms
не очень точно правда - у секундомера на часах погрешность есть


 
NikeOLD   (2003-12-02 12:15) [8]

Зависнет у тебя все через некоторое время. Уйдет в бесконечный OnTimer. Вообще стандартный Timer не работает на интервалах менее 50 ms. Дело в том, что сообщение WM_TIMER не единственное, посылаемое твоему приложению системой.
Если хочешь интервалы в 1 ms получить используй мультимедийный тимер timeSetTimeEvent и timeKillTimeEvent кажется. Они работают в собственном потоке - без сообщения WM_TIMER обходится.


 
Юрий Федоров ©   (2003-12-02 12:20) [9]

Насколько я понимаю, WM_TIMER ставится в очередь сообщений и не будет отработано, пока перед ним есть сообщения в очереди.
Следовательно пока система занята, никакие OnTimer отрабатываться не будут


 
NikeOLD   (2003-12-02 12:26) [10]

Именно, но где ты видел приложение, которое получает сообщения 100% работы своего времени?
У меня например по OnTimer опрашивается состояние 30 компов. Это занимает около 18-24 секунд. Если я ставлю значение Interval меньше 25, то программа уходит в бесконечность. Событие OnTimer посылается даже когда основное окно программы закрыто модальным окном. Я могу в это время работать с меню и т.п.


 
Семен Сорокин ©   (2003-12-02 12:28) [11]

а если в обработчике OnTimer добавить
Timer.Enabled := false;
try
...// долгая обработка
finally
Timer.Enabled := true
end


 
NikeOLD   (2003-12-02 12:30) [12]


> > 55 ms
>
> только что измерил - 57.36 ms
> не очень точно правда - у секундомера на часах погрешность
> есть
\
Не секундомером мерить надо а хотябы GetTickCount, но и это погрешность дает, правда существенно ниже.


 
panov ©   (2003-12-02 12:40) [13]

55msec - Win98
10msec - Winnt,W2000,XP


 
NikeOLD   (2003-12-02 12:50) [14]


> panov © (02.12.03 12:40) [13]

Если стоит вопрос о переносимости на платформы, то это уже критично. Если платформа только одна, см. [13]



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

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

Наверх




Память: 0.49 MB
Время: 0.019 c
3-36566
Goida
2003-11-21 22:40
2003.12.12
Руссификация заголовков таблицы


1-36636
McSimm2
2003-12-03 10:01
2003.12.12
Как в переменную типа pchar записать имеющийся адрес


7-36859
PaveL777
2003-09-02 04:27
2003.12.12
Температура процессора


3-36516
Sharkkk
2003-11-21 21:59
2003.12.12
Подскажите, как лучше отображать многоуровневый справочник...


3-36545
BoxTer
2003-11-20 11:57
2003.12.12
TDBTreeView