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

Вниз

Событие OnTimer   Найти похожие ветки 

 
Alex_C   (2011-06-20 15:48) [0]

Событие OnTimer компонента TTimer выполняется в основном потоке или как у мультимедийного таймера в отдельном?


 
Palladin ©   (2011-06-20 15:50) [1]

в основном


 
Alex_C   (2011-06-20 15:55) [2]

Спасибо!
Т.е. как я понимаю синхронизировать работу 2-х TTimer, если они работают с одним и тем же окном вывода , нет надобности? Потому как одновременно обратиться они к нему не смогут.


 
Palladin ©   (2011-06-20 16:05) [3]

OnTimer это компонент-обертка над событием WM_TIMER, которое обрабатывает очередь сообщений, а очередь это очередь... как в магазине...


 
Медвежонок Пятачок ©   (2011-06-20 16:05) [4]

осталось только спросить себя - зачем вообще нужны два таймера


 
Anatoly Podgoretsky ©   (2011-06-20 16:23) [5]

> Alex_C  (20.06.2011 15:48:00)  [0]

Это событийно ориентированый компонент


 
Anatoly Podgoretsky ©   (2011-06-20 16:24) [6]

> Alex_C  (20.06.2011 15:55:02)  [2]

Могут, если таймер не запрещен, при этом один таймер не влияет на другой.


 
MsGuns ©   (2011-06-21 13:36) [7]

Удалено модератором


 
Хреань   (2011-06-22 14:06) [8]

> Anatoly Podgoretsky ©   (20.06.11 16:24) [6] Могут, если таймер не запрещен, при этом один таймер не влияет на другой.

Толя, не запутывай человека, он и сам по себе запутается.

> Alex_C   (20.06.11 15:55) [2]

Методы OnTimer() двух таймеров будут выполняться в разное время, по очереди, не пересекаясь, не одновременно. Таймеры работают в одном потоке, и события таймеров будут обрабатываться в одном потоке по очереди. Одновременно методы OnTimer() выполняться не будут. В ходе своей работы любая программа (Application: TApplication) циклически делает выборку сообщений из очереди в основном потоке и вызывает обработчики соответствующих сообщений, то есть, само собой разумеется, что обработчики эти вызываются по очереди в основном потоке; но если твоя программа будет долго выполнять какие-то вычисления и перестанет делать выборку из очереди сообщений, то и методы OnTimer() срабатывать не будут; такая ситуация будет сохраняться вплоть до момента, когда программа закончит длительные вычисления и снова начнет делать выборку сообщений; кстати, для таких ситуаций есть метод Application.ProcessMessages(), который принудительно инициирует выборку сообщений из очереди, в том числе - и сообщений таймера; то есть, если вызвать Application.ProcessMessages(), то внутри этого метода будут выбраны имеющиеся там сообщения таймеров и вызваны соответствующие таймерам обработчики событий OnTimer(); при этом в очереди будут находиться сообщения таймеров, попавшие в нее (их туда кидает операционная система) в период между предыдущим циклом выборки сообщений и текущим циклом, инициированным этим самым Application.ProcessMessage().


 
icWasya ©   (2011-06-22 16:50) [9]

> Хреань   (22.06.11 14:06) [8]
 ..... в доме который построил Джек.


 
Alex_C   (2011-06-22 17:30) [10]

Спасибо всем :) Ну меня не так уж и просто запутать :)

Теперь отдельно для Хреань:
ответь мне, дорогой товарищь, почему ты не издаешь книги, а издают их не поймешь кто!
Очень редко когда можно прочитать столь толковое и понятное объяснение, а самое главное - полное! После такого объяснения вопросов не остается. Спасибо большое!!!!


 
Alex_C   (2011-06-22 17:33) [11]

В догонку:
Скопировал то, что написал  Хреань себе в комп - и другим не "профи" советую сделать тоже самое - во всяком случае для меня этот вопрос закрыт!
Еще раз спасибо!


 
Юрий Зотов ©   (2011-06-22 17:42) [12]


> Alex_C   (22.06.11 17:30) [10]
> а издают их не поймешь кто!

Ну, не все так уж плохо. Ведь товарищ Хреань откуда все это узнал? В конечном счете, из тех же самых книжек. Значит, хорошие книжки все же есть.

PS
А написано и правда хорошо - полно, просто и понятно.

PPS
Еще бы на абзацы разбить...
:o)



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

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

Наверх




Память: 0.49 MB
Время: 0.008 c
2-1308354496
Германн
2011-06-18 03:48
2011.10.09
Как рассчитать "необходимый и достаточный" размер кнопки TButton


2-1308394936
ZimFFa
2011-06-18 15:02
2011.10.09
Код для DBLookupComboBox


15-1308428998
Юрий
2011-06-19 00:29
2011.10.09
С днем рождения ! 19 июня 2011 воскресенье


1-1267523155
Spot
2010-03-02 12:45
2011.10.09
Ка отразить по горизонтали изображение png


2-1308531707
Германн
2011-06-20 05:01
2011.10.09
Некоторые особенности создания PopupMenu.