Текущий архив: 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.061 c