4

我们的一个遗留应用程序严重依赖于PostThreadMessage()线程间通信,因此我们将注册表中的 USERPostMessageLimit(方式)增加到超过正常的 10.000。

但是,MSDN 上的文档指出“这个限制应该足够大。如果您的应用程序超出限制,则应重新设计它以避免消耗如此多的系统资源。” [ 1 ]

谁能告诉我消耗过多的系统资源究竟是如何表现出来的?究竟什么是系统资源?我可以以某种方式监控应用程序对系统资源的使用情况吗?任何信息都将非常有助于确定是否值得花时间和精力重新设计此应用程序。

4

1 回答 1

1

它所指的资源是线程用于接收/处理消息的资源。您可以使用任务管理器监控线程池大小和其他资源(查看查看->选择列)。如果消费者被资源锁定,它可以帮助您识别特定资源,即使您的线程正在增加,也可以寻找达到顶峰的资源计数。

然而; 如果您需要增加 USERPostMessageLimit 则消息生产者只是重载消息消费者;通过增加此限制,您正在加剧您的问题而不是解决它。将 USERPostMessageLimit 降低回默认值,如果您的消息生产者无法发布消息,请在重试之前尝试休眠,允许消费线程清除一些消息。

于 2008-09-17T15:06:03.283 回答