2010-04-01 77 views
1

我正在使用WinApi。從工作非gui線程發送消息到主窗口

SendMessage/PostMessage是一種與主窗口進行通信的良好線程安全方法嗎? 假設工作線程正在創建一個位圖,該位圖必須顯示在屏幕上。工作線程分配一個位圖,發送一個指向這個位圖的消息,並等待GUI線程處理它(例如使用SendMessage)。工作線程與其他線程不共享數據。

我會遇到這種設計的麻煩嗎?

有沒有其他的可能性,不會引入線程同步,鎖定等?

回答

2

這是線程同步的體面方法,而應該是罰款,只要你小心:

  • 無論是主線程保持位圖和工作線程啓動一個新的,或反之亦然,這樣在SendMessage返回後,只有一個線程可以訪問位圖。
  • 之後您不會意外更改SendMessage到PostMessage,忘記它提供了同步以及線程間通信。
相關問題