W jaki sposób należy pozbyć się BitmapSource?Właściwy sposób pozbycia się BitmapSource
// this wont work because BitmapSource doesnt implement IDisposable
using(BitmapSource bitmap = new BitmapImage(new Uri("myimage.png")))
{
}
W jaki sposób należy pozbyć się BitmapSource?Właściwy sposób pozbycia się BitmapSource
// this wont work because BitmapSource doesnt implement IDisposable
using(BitmapSource bitmap = new BitmapImage(new Uri("myimage.png")))
{
}
Nie musisz usuwać() a BitmapSource. W przeciwieństwie do innych klas "obrazów" w ramach programu, nie zawija żadnych zasobów natywnych.
Po prostu pozwól mu wyjść poza zakres, a śmieciarz zwolni jego pamięć.
ok. Moi koledzy wspomnieli, że WPF jest w pełni przyspieszana przez dx, a obrazy itp. Są przechowywane w wideo. Czy to tylko fantazja? Jestem od dawna programistą WinForm i piszę teraz nowy moduł w WPF, więc założyłem, że muszę pozbyć się obrazów. –
BitmapSource nie jest obrazem - służy do jego wygenerowania. Jest to jednak zarządzany nośnik pikseli. Trochę mylące, ale zawsze warto to sprawdzić. Na ogół wystarczy spojrzeć na hierarchię klas - jeśli nie implementuje ona IDisposable, możesz pozwolić GC martwić się zamiast Ciebie. :) –
Z wyjątkiem tego, jeśli jest to WritableBitmap. –
[Related] (https://stackoverflow.com/questions/8352787/how-to-free-the-memory-after-tbit-apimage-is-no-longer-ededed) – Goufalite