gpt4 book ai didi

c++ - MFC 消息队列限制

转载 作者:行者123 更新时间:2023-11-28 06:26:28 26 4
gpt4 key购买 nike

我对MFC线程中消息队列大小限制的理解来自MSDN的PostThreadMessage页面的解释。

https://msdn.microsoft.com/en-us/library/windows/desktop/ms644946%28v=vs.85%29.aspx

如前所述,默认限制为 10000 条消息。我试图准确理解这个限制是什么。我认为这是两件事之一。

场景A

我有一个处理消息的 GUI。将消息放入队列的速率大于将这些消息从队列中拉出并进行处理的速率。在这种情况下,消息不断累积,最终队列中有 10000 条消息,另一条消息试图加入队列,但失败了。

场景 B

我有一个处理消息的 GUI。将消息放入队列的速率低于将这些消息从队列中拉出并处理的速率。消息不会在队列中累积。但是在我的队列看到 10000 条消息后,它就变得无用了,所以实际上,我的消息队列的使用生命周期有限。

我越想越觉得答案应该是场景A……但是奇怪的事情发生了……

最佳答案

来自链接的文章:GetLastError 在达到消息限制时返回 ERROR_NOT_ENOUGH_QUOTA。因此,每次尝试在队列已满时发送/发布消息都会失败,仅此而已。

通常,目标线程处理消息并将它们从队列中移除。带有 PM_NOREMOVE 标志的 PeekMessage 允许在不删除消息的情况下处理消息。作为引用,PeekMessage 函数:https://msdn.microsoft.com/en-us/library/windows/desktop/ms644943%28v=vs.85%29.aspx

关于c++ - MFC 消息队列限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28453143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com