Encaminhamento de dados MFC para o thread principal via PostMessage

Eu tenho um aplicativo C ++ / MFC que preciso reestruturar. O aplicativo costumava processar a maioria dos dados no encadeamento principal, bloqueando a entrada e, agora, quero alterá-lo para que todas as atualizações da GUI sejam feitas através do PostMessage.

Infelizmente, não consigo encontrar uma boa fonte de como atingir esse objetivo.

No momento, estou pensando em criar uma fila prioritária, protegida com a seção crítica, um thread de trabalho (while (true)) que processa essa fila e o mecanismo PostMessage que envia ponteiros para os dados no thread principal.

O que me assusta com essa abordagem é que não é garantido que o PostMessage chegue ao segmento principal, portanto, se eu entendi corretamente, há uma chance de vazamento de memória.

O segundo problema é que outro aplicativo pode enviar uma mensagem personalizada para o meu aplicativo, e ele pode tentar desreferenciar o WPARAM ou LPARAM como um ponteiro, causando AV.

Alguém sabe quais são as melhores práticas para essas tarefas?

Os dados podem ser conteúdo HTML para controle da Web ou outro conteúdo para caixas de listagem, caixas suspensas etc.

questionAnswers(3)

yourAnswerToTheQuestion