2009-10-20 7 views
8

Comment êtes-vous censé disposer d'un BitmapSource?Façon correcte de disposer d'un BitmapSource

// this wont work because BitmapSource doesnt implement IDisposable 
using(BitmapSource bitmap = new BitmapImage(new Uri("myimage.png"))) 
{ 
} 
+0

[connexes] (https://stackoverflow.com/questions/8352787/how-to-free-the-memory-after-the-bitmapimage-is-no-longer-needed) – Goufalite

Répondre

11

Vous ne devez pas Dispose() un BitmapSource. Contrairement à d'autres classes "image" dans le Framework, il n'emballe aucune ressource native. Laissez-le simplement hors de portée, et le garbage collector libérera sa mémoire.

+0

ok. Mes collègues ont mentionné que WPF est complètement accéléré dx et les images, etc. sont stockées dans la vidéo. Est-ce juste un fantasme? Je suis un programmeur Winforms depuis longtemps et je suis en train d'écrire un nouveau module dans WPF, donc j'ai supposé que j'avais besoin de disposer des images. –

+1

Une BitmapSource n'est pas une image - elle est utilisée pour en générer une. Cependant, il s'agit d'un support de stockage de pixels géré. Un peu déroutant, mais ça vaut toujours la peine de vérifier. En général, il suffit de regarder la hiérarchie des classes - si elle n'implémente pas IDisposable, vous êtes libre de laisser le GC s'inquiéter à la place de vous. :) –

+0

Sauf que oui, si c'est un WritableBitmap. –

Questions connexes