Re[5]: MFC. Сообщения. Взаимодействие классов в потоке.
От: RSATom Россия  
Дата: 20.03.12 07:27
Оценка:
Здравствуйте, MasterZiv, Вы писали:


>> RSA>>1. Cообщения слать через SendMessage


MZ>SendMessge между разными потоками синхронизируется дополнительно.

MZ>Нужно использовать либо PostMessage, либо SendMessageTimeout.
Имелось в виду SendMessage/PostMessage в контраст PostThreadMessage. Извиняюсь если невнятно выразился.

>> RSA>>3. Сначала нужно добится отсылки/получения сообщений в рамках одной нити, а

>> затем переходить к нескольким нитям, где все будет абсолютно идентичтно за
>> исключением того что в рабочую нить нужно будет протащить HWND окна при запуске
>> нити.

MZ>Наоборот, всё совсем по-разному. Посылка сообщения (SendMessage) ---строго

MZ>синхронный процесс. Посылка сообщения другому потоку -- асинхронный.
MZ>Поэтому Windows синхронизирует при этом потоки, посылающий и принимающий.
MZ>Тут можно очень легко нарваться на deadlock-и и положить приложение.

Отслеживание deadlock это другой вопрос.
Я же имел в виду лишь то, что без разницы будет ли отсылка/получение в рамках одной нити, или в разных, будет использоваться один и тот же механизм с Post/SendMessage.
Re[6]: MFC. Сообщения. Взаимодействие классов в потоке.
От: MasterZiv СССР  
Дата: 20.03.12 08:18
Оценка:
> Я же имел в виду лишь то, что без разницы будет ли отсылка/получение в рамках
> одной нити, или в разных, будет использоваться один и тот же механизм с
> Post/SendMessage.

PostMessage — тот же, да.

SendMessage -- для приложения всё выглядит как бы прозрачно, но внутри механизм
принципиально другой. Принципиально -- тем, что могут быть deadlock-и.
Posted via RSDN NNTP Server 2.1 beta
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.