Повне повідомлення

Що SendMessage функцію надсилати повідомлення на інший потік не може продовжити повертав вікно процедура, яка отримує повідомлення. Якщо отримання потоку дає керування під час обробки повідомлення, надсилання потік не може продовжити, тому що він чекає на SendMessage для повернення. Якщо отримання потоку потім надсилає повідомлення на заклик потік, хоча він заблокований, це може призвести до Взаємне блокування.

Зверніть увагу, що отримання потоку повинні не поступається керування явно; виклик будь-який з наступних функцій може викликати потоку для отримання керування неявно.

DialogBox
DialogBoxIndirect
DialogBoxIndirectParam
DialogBoxParam
GetMessage
MessageBox
PeekMessage

Щоб уникнути потенційних повне, розглянути питання про використання функції SendNotifyMessage або SendMessageTimeout . В іншому випадку процедура вікна можна визначити, чи отримані повідомлення було надіслано на інший потік шляхом виклику функції InSendMessage . Перед викликом будь-яку з функцій у попередньому списку під час обробки повідомлення, вікно процедура повинна перший виклик InSendMessage. Якщо ця функція повертає TRUE, вікно процедура повинна виклику функції ReplyMessage до будь-якої функції, що викликає потоку для отримання керування.

Index