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

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

TThread.Synchronize [D5, Win2k]


irq ©   (2005-08-24 13:28:00) 

Здравствуйте! Если в каком-то потоке делаешь SendMessage какому-то окну, то нужно ли вызывать SendMessage через Synchronize?


wicked   (2005-08-25 14:00:00) [1]

> Digitman ©   (25.08.05 08:26) [5]
спасибо...


Digitman   (2005-08-25 08:26:00) [2]


> wicked ©   (24.08.05 22:30) [3]


> возможно, ошибусь


да, ошибаешься.


> SendMessage непосредственно вызывает оконную процедуру окна


.. тольков случае, когда создателем целевого окна является тот же самый трэд, который и вызвал SendMessage()

во всех прочих случаях SendMessage() ставит сообщение в очередь сообщений целевого окна, и до тех пор пока тред, создавший целевое окно, не выберет и не обработает это сообщение, тред, вызвавший SendMessage(), будет ждать результата обработки посланного им сообщения.


Defunct   (2005-08-25 03:08:00) [3]

wicked ©   (24.08.05 22:30) [3]
> возможно, ошибусь,

ты ошибся. Synchronize абсолютно не нужен. см [1].


wicked   (2005-08-24 22:30:00) [4]

хмм... возможно, ошибусь, но скажу, что нужно...
почему?... а потому, что SendMessage непосредственно вызывает оконную процедуру окна и, соответственно, дожидается её завершения... то есть, оконная процедура будет выполняться в контексте вызвавшего её thread'а...
а вот, например, PostMessage будет просто ложить сообщение в очередь сообщений для данного окна и тут же возвращать управление...
возможно, я не прав... в таком случае, хотелось бы об этом знать... ;)


Leonid Troyanovsky   (2005-08-24 13:40:00) [5]


> irq   (24.08.05 13:28)  
> Здравствуйте! Если в каком-то потоке делаешь SendMessage
> какому-то окну, то нужно ли вызывать SendMessage через Synchronize?


Не нужно.
Это, так сказать, естественный метод синхронизации.

--
Regards, LVT.


Digitman   (2005-08-24 13:40:00) [6]

нет, не нужно


Наверх

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