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

Вниз

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

 
irq   (2005-08-24 13:28) [0]

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


 
Leonid Troyanovsky ©   (2005-08-24 13:40) [1]


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


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

--
Regards, LVT.


 
Digitman ©   (2005-08-24 13:40) [2]

нет, не нужно


 
wicked ©   (2005-08-24 22:30) [3]

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


 
Defunct ©   (2005-08-25 03:08) [4]

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

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


 
Digitman ©   (2005-08-25 08:26) [5]


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


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


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


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


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

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


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

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



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

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

Наверх




Память: 0.47 MB
Время: 0.065 c
9-1117520325
WondeRu
2005-05-31 10:18
2005.10.02
GLScene. Как рисовать обычными OpenGL командами?


1-1126604338
IfBeginThenEnd
2005-09-13 13:38
2005.10.02
Базовый API


2-1124490678
TStas
2005-08-20 02:31
2005.10.02
Русский текс на компьютере с языком по умолчанию английский.


14-1126294426
DesWind
2005-09-09 23:33
2005.10.02
Читаешь книгу - фидишь фигу.


6-1118297430
SergSamohin
2005-06-09 10:10
2005.10.02
Загрузка файла