开发者

Sending message from working non-gui thread to the main window

I'm using WinApi.

Is SendMessage/PostMessage a good, thread safe method of communicating with the main window? Suppose, the working thread is creating a bitmap, that must be displayed on the screen. The working thread allocates a bitmap, sends a message with a pointer to this bitmap and waits until GUI thread processes it (for exam开发者_运维知识库ple using SendMessage). The working thread shares no data with other threads.

Am I running into troubles with such design?

Are there any other possibilities that do not introduce thread synchronizing, locking etc. ?


This is a decent method of thread synchronisation, and should be fine, so long as you're careful that:

  • either the main thread keeps the bitmap and the worker thread starts a new one, or vice versa, so that after SendMessage returns only one thread has access to the bitmap.
  • you don't accidentally change the SendMessage to a PostMessage later, forgetting that it is providing your synchronisation as well as the inter-thread communication.
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜