是否有可能以某种方式巧妙地使用PostMessage
,GetMessage
等来排队LIFO条消息(假设发送方和接收消息循环都合作),或者我是否需要滚动我自己的解决方案?
如果你想知道用例,那就是图标加载。您始终希望首先加载最近请求的图标。 :)
答案 0 :(得分:2)
不,你需要自己动手 - 窗口消息队列有一个最大的大小,如果它已经满了,各种各样的东西都会出错,从COM,DDE到用户交互。
不应使用线程队列,而应使用受关键部分保护的双端队列(或类似)。
每个邮件队列的发布邮件数量限制为10,000。这个限制应该足够大。如果您的应用程序超出限制,则应重新设计它以避免消耗这么多系统资源。
另见一个可能出错的例子: