【问题标题】:LIFO Win32 message loop?LIFO Win32 消息循环?
【发布时间】:2012-07-10 15:21:32
【问题描述】:

是否有可能巧妙地使用PostMessageGetMessage 等对LIFO 消息进行排队(假设发送方和接收消息循环合作),还是我需要推出自己的解决方案?

如果您想知道用例,那就是图标加载。您总是希望首先加载最近请求的图标。 :)

【问题讨论】:

    标签: winapi stack message-queue getmessage


    【解决方案1】:

    不,您需要自己滚动 - Windows 消息队列有一个最大大小,如果它被填满,从 COM、DDE 到用户交互,各种事情都会出现严重错误。

    您应该使用受临界区保护的双端队列(或类似的),而不是使用线程队列。

    另请参阅可能出错的示例:

    【讨论】:

    • 我在这个线程上没有任何窗口或 COM,所以如果它满了也不用担心......对吗?
    • 如果你没有windows或COM为什么要pump消息?
    • 只是为了我自己的东西,消息传递。
    • 好的,我的回答是“如果队列已满,您可能会遇到意外行为”。
    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多