是否有可能巧妙地使用PostMessage
,GetMessage
等来排队LIFO消息(假设发送者和接收消息循环都合作),还是我需要推出自己的解决方案?
如果您想知道用例,那就是图标加载。您总是希望首先加载最近请求的图标。:)
是否有可能巧妙地使用PostMessage
,GetMessage
等来排队LIFO消息(假设发送者和接收消息循环都合作),还是我需要推出自己的解决方案?
如果您想知道用例,那就是图标加载。您总是希望首先加载最近请求的图标。:)
不,你需要自己动手——windows 消息队列有一个最大大小,如果它满了,从 COM、DDE 到用户交互,各种事情都会出错。
您应该使用受临界区保护的双端队列(或类似的),而不是使用线程队列。
每个消息队列有 10,000 条已发布消息的限制。这个限制应该足够大。如果您的应用程序超出限制,则应重新设计它以避免消耗如此多的系统资源。
另请参阅可能出错的示例: