3

特定のプロセスを監視し、CPU とメモリの使用率を折れ線グラフにプロットする WPF アプリがあります。CPU% とメモリの値は、パフォーマンス カウンター クラス C# を使用して読み取られます。グラフは、フェッチされた値に従って手動で線を描画しているUserControlを含むです。Canvas

現在、各グラフで Dispatcher タイマーを使用してUserControlおり、各ティックで新しい値を取得してプロットしています。

問題は、監視するプロセスを追加するにつれて、多くの更新が行われるため、アプリが CPU を消費することです。

私が試みていることを達成するためのより良い方法は何ですか? 各プロセスの詳細は個別のタブにあり、ロードされたときにのみ初期化されますが、連続したプロットが必要なため、タブが表示されていないときにプロットを停止することはできません。

これを行うより良い方法はありますか?

4

2 に答える 2

1

更新が必要なタイマーのコレクションを持つ代わりに、ポーリングが必要なオブジェクトのコレクションと、各ティックでこのリストを反復処理する単一のタイマーを処理します。
スレッド セーフなコレクションを使用します (いくつかは .Net で提供されます)。

于 2013-10-16T09:30:23.920 に答える