Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Событие OnTimer [D7, XP]


Alex_C ©   (2011-06-20 15:48:00) 

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


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


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

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

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

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


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

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


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

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

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


icWasya   (2011-06-22 16:50:00) [4]

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


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

> 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().


MsGuns   (2011-06-21 13:36:00) [6]

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


Anatoly Podgoretsky   (2011-06-20 16:24:00) [7]

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

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


Anatoly Podgoretsky   (2011-06-20 16:23:00) [8]

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

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


Palladin   (2011-06-20 16:05:00) [9]

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


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

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


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

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


Palladin   (2011-06-20 15:50:00) [12]

в основном


Наверх

Титульная страница Поиск, карта сайта Написать письмо