2017-09-23 5 views
0

私はWPFのスペクトルアナライザを使っています。バーは、グリッドに含まれる長方形です。 128のバーがあり、1秒間に約31回更新されます。プログラムはそれがやるべきことをしますが、唯一の問題はCPUが非常に重いようです。WPF長方形の配列の高さを効率的に1秒間に31回更新する

プログラムが実行されている間、CPUは約30%でした。そして、バーの高さを更新して、それが原因であることを確認するコードを削除したとき、CPUは0〜5%まで低下しました。

グリッドでOnRenderをオーバーライドし、DrawingContext.DrawRectangle()を使用して矩形を描画し、タイマーでグリッドを無効にしましたが、それはそれほど優れていませんでした。

WPFでスペクトルアナライザのバーをレンダリングするより良い方法はありますか?

+0

この質問を見ましたか?あなたは 'WritableBitmap'か普通の' Rectangle'オブジェクトを使っていますか? https://stackoverflow.com/questions/4447794/fast-drawing-lots-of-rectangles-one-at-a-time-in-wpf –

+0

私は 'Rectangle'オブジェクトを使用しています。私はその質問に目を通し、WriteableBitmapsに関する多くの経験はありません。 –

答えて

0

パフォーマンスに問題がある場合は、DirectXシーンをホストできるD3DImageを選択する必要があります。 thisを確認してください。

関連する問題