システム:Windows XP SP3、.NET 3.5、4GB RAM、デュアル1.6gHzWPFがメモリから大量のBitmapSourceをリリースすることを確認しますか?
私は非常に大きなPNGをロードして(ストーリーボードアニメーションを使用して)遷移するWPFアプリケーションを持っています。これらのPNGは8190x1080の解像度です。アプリケーションが実行されると、画像とシステムメモリをキャッシュするように見えますが、メモリはゆっくりと這い上がります。最終的にはシステムを窒息させ、OutOfMemoryExceptionをスローします。私はロードするとき、私はNoneにしたBitmapSource BitmapCacheOptionを設定しています)私はアプリ
2からしたBitmapSourceオブジェクトを削除しています)
1:ここでは
は、私は現在、この問題を解決しようとする取っていステップでありますBitmapSource
3)読み込んだBitmapSourceをフリーズしています。
4)ソースを使用する画像への参照と、ソース自体への参照をすべて削除します。
5)上記の手順を実行した後、GC.Collect()を手動で呼び出してください。
WPFがこれらのイメージ用にメモリにぶら下がっている理由と、それらをロードするために使用されたメモリが適切に復元されることを保証するための解決策を見つけ出すことを願っています。
BitmapSource source = new BitmapSource()がコンパイルされず、理由がわかりません。 エラー抽象クラスまたはインターフェイス 'System.Windows.Media.Imaging.BitmapSource'のインスタンスを作成できません – discorax
BitmapSourceの代わりにBitmapImageを使用するとAhh..itがコンパイルされます。 これはどのように問題を引き起こしますか? :) – discorax
これまでのところ、このアプローチは有望です。私はテストを続けます。 – discorax