システム: Windows XP SP3、.NET 3.5、4GB RAM、デュアル 1.6GHz
非常に大きな PNG を (ストーリーボード アニメーションを使用して) 読み込んで遷移させる WPF アプリケーションがあります。これらの PNG の解像度は 8190x1080 です。アプリケーションが実行されると、画像がキャッシュされているように見え、システム メモリが徐々に増えていきます。最終的にはシステムを停止させ、OutOfMemoryException をスローします。
これを解決するために私が現在取っている手順は次のとおりです。
1) アプリから BitmapSource オブジェクトを削除しています
2) BitmapSource をロードするときに、BitmapSource BitmapCacheOption を None に設定しています。
3) BitmapSource がロードされたら、それをフリーズしています。
4) ソースを使用するイメージへのすべての参照と、ソース自体への参照をすべて削除します。
5) 上記の手順が完了した後、手動で GC.Collect() を呼び出します。
WPFがこれらの画像のメモリにハングアップする理由と、それらの読み込みに使用されたメモリが適切に回復されるようにするための解決策を見つけたいと思っています。