Отправка сообщения из рабочего потока без графического интерфейса в главное окно - PullRequest
1 голос
/ 01 апреля 2010

Я использую WinApi.

Является ли SendMessage / PostMessage хорошим, поточно-ориентированным методом связи с главным окном? Предположим, рабочий поток создает растровое изображение, которое должно отображаться на экране. Рабочий поток выделяет растровое изображение, отправляет сообщение с указателем на это растровое изображение и ожидает, пока поток GUI его не обработает (например, с помощью SendMessage). Рабочий поток не разделяет данные с другими потоками.

У меня проблемы с таким дизайном?

Существуют ли другие возможности, не связанные с синхронизацией потоков, блокировкой и т. Д.?

1 Ответ

2 голосов
/ 01 апреля 2010

Это достойный метод синхронизации потоков, и он должен подойти, если вы будете осторожны:

  • либо основной поток сохраняет растровое изображение, а рабочий поток запускает новое, или наоборот, так что после возврата SendMessage только один поток имеет доступ к растровому изображению.
  • вы случайно не меняете SendMessage на PostMessage позже, забывая, что он обеспечивает вашу синхронизацию, а также связь между потоками.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...