4

レガシー アプリケーションの 1 つはPostThreadMessage()スレッド間通信に大きく依存しているため、レジストリの USERPostMessageLimit を通常の 10.000 を超えて (途中で) 増やしました。

ただし、MSDN のドキュメントには、「この制限は十分に大きくする必要があります。アプリケーションが制限を超える場合は、システム リソースを大量に消費しないように再設計する必要があります。」と記載されています。[ 1 ]

あまりにも多くのシステム リソースがどのように消費されるかについて、誰か教えてもらえますか? システムリソースとは正確には何ですか? アプリケーションによるシステム リソースの使用状況を何らかの方法で監視できますか? このアプリケーションを再設計するのに時間と労力を費やす価値があるかどうかを判断するには、どのような情報でも非常に役立ちます。

4

1 に答える 1

1

それが参照しているリソースは、メッセージを受信/処理するためにスレッドによって使用されるリソースです。Taskmanager を使用して、スレッド プールのサイズとその他のリソースを監視できます (View->Select Columns を参照)。コンシューマがリソース ロックされている場合は、特定のリソースを特定するのに役立つ場合があります。スレッドが増加している間でも、リソース カウントが最大になるのを探してください。

でも; USERPostMessageLimit を増やす必要がある場合、メッセージ プロデューサーは単にメッセージ コンシューマーを過負荷にしています。この制限を増やすと、問題が解決せずに悪化します。USERPostMessageLimit をデフォルトに戻し、メッセージ プロデューサがメッセージを投稿できない場合は、再試行する前にスリープ状態にして、消費スレッドが一部のメッセージをクリアできるようにします。

于 2008-09-17T15:06:03.283 に答える