Пересылка данных MFC в основной поток через PostMessage

У меня есть приложение C ++ / MFC, которое мне нужно реструктурировать . Приложение использовалось для обработки большей части данных в основном потоке, поэтому блокировало ввод, и теперь я хочу изменить его так, чтобы все обновления графического интерфейса выполнялись через PostMessage.

К сожалению, я не могу найти хороший источник о том, как достичь этой цели.

Прямо сейчас я думаю о создании очереди с приоритетом, защищенной критической секцией, рабочего потока (while (true)), который обрабатывает эту очередь, и механизма PostMessage, который отправляет указатели на данные в основной поток.

Что меня пугает в этом подходе, так это то, что PostMessage вообще не гарантирует поступление в основной поток, поэтому, если я правильно понимаю, существует вероятность утечки памяти.

Вторая проблема заключается в том, что другое приложение может отправить настраиваемое сообщение моему приложению, и мое приложение может попытаться разыменовать WPARAM или LPARAM как указатель, тем самым вызывая AV.

Кто-нибудь знаете, как лучше всего решать такие задачи?

Данные могут быть HTML-контентом для веб-контроля или другим контентом для списков, раскрывающихся списков и т. д.

5
задан Coder 27 September 2010 в 21:15
поделиться