SendMessage
- это общее решение для публикации результатов в ветке GUI.Он выполняет всю синхронизацию потока для вас и не возвращает, пока сообщение не будет обработано окном потока получателя.
PostThreadMessage
менее надежно, поскольку сообщение может / будет потеряно, когда получатель находится вмодальный цикл, например, MessageBox
, если только вы не добавили ловушку, которая перехватывает сообщение потока, поэтому просто используйте SendMessage
.
. Более продвинутые методы включают в себя выполнение синхронизации потока самостоятельно, например, с буфером, но в любом случаеэто, вероятно, также потребует SendMessage
для потока GUI, поэтому я предлагаю вам просто начать с этого, и, если это достаточно хорошо, не делать больше.
EDIT :черт, теперь я вижу, что хотя первое предложение говорит о потоках, на самом деле речь идет об отправке данных из одного процесса в другой процесс.Ну, для этого есть WM_COPYDATA
.Обратите внимание, что указатель (на уровне пользователя) одного процесса недопустим в другом процессе .