3

私のWPFプロジェクトでは、ウィンドウを開くと、CPU使用率は約30%〜50%ですが、このウィンドウを最小化すると、CPU使用率は1%に低下します。誰かがその理由を知っていますか?ありがとう

4

2 に答える 2

5

画面にたくさんのバインド (双方向) がありますか? これにより、CPU が高くなる可能性があります。それともたくさんのアニメーション?

最終的には、WPF パフォーマンス スイートを使用して、この高い CPU 負荷の原因を監視できます: http://msdn.microsoft.com/en-us/library/aa969767.aspx

于 2012-04-11T13:00:48.993 に答える
2

Rodyによる良い投稿です。コメントには上限があるため、コメントの代わりに回答を使用して、いくつか追加します。

AntsProfilerも使用することをお勧めします。2週間の試用期間があります。何が起こっているのかを理解するには十分すぎるほどです。また、コードの一部を投稿すると、ここの人々はすぐにいくつかのことを指摘できます。

たとえば、Rudyが指摘したように、大量のバインディングとアニメーション、および過度に複雑なコントロールとコントロールテンプレートがある場合などです。スタックパネル内、境界線内のスタックパネルの不要な構成について質問します...ラベルの代わりにTextBlocksを使用します。または、TextBoxが必要かどうか、読み取り専用の場合は、TextBlocks+Borderを使用します。ItemControlのアイテムが複雑すぎませんか?等...

また、AntsProfilerは「ゾンビ」オブジェクトを表示できます。正しく廃棄していますか、オブジェクトをリサイクルしていますか、または毎回新しい複雑な構造を作成していますか(たとえば、表示するデータの新しい日付範囲を選択する場合)、それらに再バインドします。データグリッドセルがある場合、すべてのセルに高価なものが必要ですか...ポップアップと追加の境界線..視覚効果のためにすべてのセルの周囲に境界線を作成する場合は、1つだけになるようにリファクタリングし、位置を変更しますグリッド上にあります。そして、リストは続けることができます。

簡単に言うと、WPFは独創的です。そのため、物事を削減するか、オーバーヘッドを減らして物事をきれいに保つために、より独創的にする必要があるかもしれません。

PSはいくつかのコードを投稿することを忘れないでください...

于 2012-04-11T16:12:33.637 に答える