Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
1-36687
_юзер_
2003-12-02 17:58
2003.12.12
MDI


14-36825
Думкин
2003-11-19 04:29
2003.12.12
С днем рождения! 19 ноября.


14-36819
Sergeant ///
2003-11-19 15:34
2003.12.12
Перенос приложения


1-36731
JohnJohn
2003-11-27 18:40
2003.12.12
Можно ли хранить chr(0) в длинных строках D5 ?


1-36656
Agent13
2003-11-30 19:27
2003.12.12
Регистрация почтового клиента





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский