【问题标题】:Sending message from working non-gui thread to the main window从工作的非gui线程发送消息到主窗口
【发布时间】:2010-04-01 18:30:25
【问题描述】:

我正在使用 WinApi。

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

这样的设计我会遇到麻烦吗?

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

【问题讨论】:

    标签: multithreading winapi


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多