2008-09-23 80 views
13

队列中标准窗口持有多少条消息?当队列溢出时会发生什么?Win32消息队列有多深?

GetMessage和亲属的文档对此没有任何说明,而PeekMessage仅给出某些类别的消息是/否,而不是消息数量。

This page说,队列使用内存映射文件来实现,并没有消息数限制,但网页是关于WinCE的。这是否也适用于桌面Win32?

回答

13

10000默认,但它可以通过注册表来调整。

如果队列溢出,PostMessage失败。

文档浏览:

PostMessage function on MSDN

+0

涵盖2000/XP - 关于Vista的任何想法? – 2008-09-23 19:52:35

+0

我刚刚查看了Vista Business SP1机器上该文章中列出的注册表项,并将其设置为10000.不过,我不知道这是确定Vista上队列长度的唯一因素。 – Branan 2008-09-23 19:55:52

3

由于MSDN文章中说,如果你需要担心的消息队列的大小,你可能会更好重新设计你的应用程序。