从工作的非gui线程发送消息到主窗口

时间:2010-04-01 18:30:26

标签: multithreading winapi

我正在使用WinApi。

SendMessage / PostMessage是一种与主窗口通信的良好,线程安全的方法吗? 假设,工作线程正在创建一个位图,必须在屏幕上显示。工作线程分配位图,发送带有指向此位图的指针的消息,并等待GUI线程处理它(例如使用SendMessage)。工作线程与其他线程不共享数据。

我是否遇到过这种设计的麻烦?

是否还有其他可能不引入线程同步,锁定等的可能性?

1 个答案:

答案 0 :(得分:2)

这是一个不错的线程同步方法,应该没问题,只要你小心:

  • 主线程保持位图,工作线程启动新线程,反之亦然,这样在SendMessage返回后,只有一个线程可以访问位图。
  • 您不会在以后意外将SendMessage更改为PostMessage,忘记它正在提供同步以及线程间通信。