Sendmessage and Postmessage

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Sendmessage and Postmessage

Сообщение Fedorfx » 12.02.2005 (Сб) 0:31

Есть 2 разных процесса.
Правильно ли я предпологаю.

pr1-------
Sendmessage xxx
аa=аa+1
pr2---------------
wndproc
bb=bb+1
end wndproc
-------------
в этом случае всегда сначала вырастет bb а только потом аa

pr1-------
Postdmessage xxx
аa=аa+1
pr2---------------
wndproc
bb=bb+1
end wndproc
-------------
А тут скорее всего вырастет аа а только потом, когда управление передасться второму процессу он обработает это сообщение и выполнит bb=bb+1

Правильно или нет?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 12.02.2005 (Сб) 0:52

Случай 1 - в принципе да, логично:
MSDN писал(а):The SendMessage function sends the specified message to a window or windows. It calls the window procedure for the specified window and does not return until the window procedure has processed the message.
...
To post a message to a thread's message queue and return immediately, use the PostMessage or PostThreadMessage function.

Случай 2 - а вот здесь я бы никогда ни за что не поручился. Ты же не знаешь, как поведет себя операционная система, распределяя ресурсы 4 процессоров :) на твои 2 процесса. Или одного процессора - в этом случае поведение оси может оказаться тем же, а может - совершенно другим.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 12.02.2005 (Сб) 1:03

Ухты, тема в руку...
А кто знает отличие между PostMessage и SendNotifyMessage (применительно к окнам чужих нитей)?
GSerg-а я уже посвятил в эту тайну, но может это интересно и более широкому кругу?
Изображение

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 12.02.2005 (Сб) 10:41

Кстати, для отсылки сообщений другим потокам можно использовать PostThreadMessage.
А синхронизацию вообще лучше реализовать средствами ОСи: есть Mutex-ы, Семафоры и т.д.
Mutex-ами, судя по многим статьям, можно синхронизировать и потоки разных процессов.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 113

    TopList