为什么STA thread会这样说;“泄漏少量内存”;如果它无法发送Windows消息?

为什么STA thread会这样说;“泄漏少量内存”;如果它无法发送Windows消息?,windows,winapi,com,Windows,Winapi,Com,在仔细阅读之后,我注意到一个有趣的陈述。文章说,如果我有一个STA线程,而该线程不发送Windows消息,那么该线程 将无法从COM服务器接收COM事件 可能导致消息广播挂起(因此有时会导致死锁) 令人惊讶的是…会泄漏少量内存 虽然前两条语句相当合理(Windows消息用于向单线程单元中的对象分派COM调用),但我根本没有得到第三条 如果线程不发送Windows消息,为什么它会“泄漏少量内存”?我可以想象,因为一个结构被分配,并与消息一起发布。 如果消息未被处理,包含消息参数的结构将不会被释

在仔细阅读之后,我注意到一个有趣的陈述。文章说,如果我有一个STA线程,而该线程不发送Windows消息,那么该线程

  • 将无法从COM服务器接收COM事件
  • 可能导致消息广播挂起(因此有时会导致死锁)
  • 令人惊讶的是…会泄漏少量内存
虽然前两条语句相当合理(Windows消息用于向单线程单元中的对象分派COM调用),但我根本没有得到第三条


如果线程不发送Windows消息,为什么它会“泄漏少量内存”?

我可以想象,因为一个结构被分配,并与消息一起发布。
如果消息未被处理,包含消息参数的结构将不会被释放。

我可以想象,因为一个结构被分配,并与消息一起发布。
如果消息未被处理,包含消息参数的结构将不会被释放。

无法分派的消息-它们必须在某处排队,等待最终开始分派它们的决定性时刻。该队列将使用一些内存。

您未能发送的消息-它们必须在某个地方排队,等待您最终开始发送它们的决定性时刻。该队列将使用一些内存