Qual é a diferença entre enviar mensagem e postar mensagens e como elas se relacionam com programação de janelas C #, WPF e Pure?

Qual é a diferença entre enviar mensagem e postar mensagens (em termos de programação do Windows puro) e como elas se relacionam com programação em janelas C #, WPF e Pure?

Eu sou novo no Threading e em todos os assuntos relacionados, então, por favor, desculpe-me por perguntas óbvias. Eu preciso cavar as partes externas do Threading .. Por favor, deixe-me saber os links que me ajudam a construir o meu conceito de programação win32 para o WPF.

Eu preciso underderstand de Post mensagem para Afx (chamada para iniciar um novo segmento) para delegar Invok / Begin Invoke para Dispatcher.

PostMessage (em “pure windows programming”, também conhecido como win32 API) é asynchronous , ou seja, para citar os documentos:

Coloca uma mensagem na fila de mensagens associada ao encadeamento que criou a janela especificada e retorna sem esperar que o encadeamento processe a mensagem.

Para postar uma mensagem na fila de mensagens associada a um encadeamento, use a function PostThreadMessage.

SendMessage é síncrono , ou seja, novamente citando:

Envia a mensagem especificada para uma janela ou janelas. A function SendMessage chama o procedimento de janela para a janela especificada e não retorna até que o procedimento de janela tenha processado a mensagem.

Para enviar uma mensagem e retornar imediatamente, use a function SendMessageCallback ou SendNotifyMessage. Para postar uma mensagem na fila de mensagens de um thread e retornar imediatamente, use a function PostMessage ou PostThreadMessage.

Um bom tutorial sobre essas duas funções e seu uso está aqui .

A conexão com o WPF é discutida nessa questão do SO .