Wenn ich etwas Bitmap bmp1
mitzuführen und eine PictureBox.Image
zu dieser bmp1
dann irgendwann später setzen Sie ihn auf Bitmap bmp2
wird bmp1
von durch PictureBox
oder tun ordnungsgemäß entsorgt ich einen Hinweis auf bmp1
und Dispose
davon halten müssen, wenn ich ändern Image
-bmp2
?Was passiert mit einer Bitmap in einer PictureBox, sobald Image auf eine andere Bitmap gesetzt ist?
Was passiert mit einer Bitmap in einer PictureBox, sobald Image auf eine andere Bitmap gesetzt ist?
Antwort
Die PictureBox
kann nicht wissen, ob Sie das Bild entsorgt haben möchten - Sie könnten es an anderer Stelle in Ihrer App verwenden. So ist es nicht explizit Dispose
es. Wenn die PictureBox
die letzte Referenz darauf enthielt, wird sie für die Garbage Collection geeignet, und Dispose
wird als Teil der Finalisierung aufgerufen, aber wenn das passiert, liegt das an dem Garbage Collector. In der Zwischenzeit konsumiert das noch nicht vorhandene Bitmap
nicht verwaltete Ressourcen und hält höchstwahrscheinlich einen Stream offen, der Änderungen an der Quelldatei verhindert, so dass die Dinge "immer dann" bereinigt werden können, wenn sie eine schlechte Praxis ist.
Wenn Sie wissen, dass Sie mit dem Bitmap
zu der Zeit fertig sind zu ändern, was PictureBox.Image
Punkte, fügen Sie genau dort ein extra paar Zeilen des alten zu entsorgen und fertig:
Image tmp = myPictureBox.Image;
myPictureBox.Image = newImage;
if (tmp != null)
{
tmp.Dispose();
}
- 1. Konvertieren Sie das Bild in einer PictureBox in eine Bitmap
- 2. Zeichnen über eine Bitmap geladen in einer Picturebox
- 3. Bitmap Repaint in Picturebox Lagging
- 4. Überlagern Bitmap über eine andere Bitmap
- 5. Löschen einer Bitmap in .Net
- 6. C# Schnelles Laden von Bitmap in PictureBox
- 7. Überschreiben einer Bilddatei (Bitmap)
- 8. So löschen Sie Inhalt auf einer Bitmap
- 9. Konvertieren einer Bitmap in Monochrom
- 10. Text auf einer Bitmap zentrieren
- 11. Ändern BPP in Bitmap Image
- 12. Get angebracht Bitmap Image mit Hintergrund
- 13. Was ist eine Bitmap in C?
- 14. Proportionale Größenanpassung einer Bitmap
- 15. Was ist der Unterschied zwischen Bitmap.Clone() und neuer Bitmap (Bitmap)?
- 16. Laden einer Ressource auf ein veränderbares Bitmap
- 17. Ist eine unveränderliche Bitmap schneller als eine veränderbare Bitmap?
- 18. mfc Bitmap liest eine vollständig schwarze Bitmap
- 19. wie einen native GDI-Bitmap aus einer .net Bitmap erhalten
- 20. Konvertieren einer 1 Bit Bitmap zu 8 Bit Bitmap Xamarin
- 21. Drucken Bitmaps auf andere Bitmap android
- 22. Konvertieren von Bitmap zu Bitmap
- 23. Erstellen einer BMP-Datei (Bitmap) in C
- 24. Erstellen einer zentrierten skalierten Bitmap
- 25. Programmaticaly gesetzt Bitmap in Layer-Liste Android
- 26. Wie zeichne ich Fettschrift auf einer Bitmap?
- 27. Abrufen einer BitMap von AsyncTask in Java
- 28. Drehen einer Bitmap 90 Grad
- 29. Erstellen einer transparenten Bitmap mit GDI?
- 30. Vergleichen eines Bildes mit einer Bitmap?
Diese ist was ich vermutet habe, danke. – KDecker