Sayfayı Yazdır | Pencereyi Kapat

C# Bitmap Dispose

Nereden Yazdırıldığı: Datakent
Kategori: Diğer bölümler
Forum Adı: C# & ASP.NET
Forum Tanımlaması: C# ve ASP.NET ile ilgili soru / sorun ve paylaşım bölümü
URL: http://forum.datakent.com/forum_posts.asp?TID=2782
Tarih: 29.Nisan.2024 Saat 08:56


Konu: C# Bitmap Dispose
Mesajı Yazan: murat turan
Konu: C# Bitmap Dispose
Mesaj Tarihi: 19.Nisan.2015 Saat 10:13
C# Bitmap Dispose edilmesi.

C# ile image dosyaları yükleme vs... işlemleri yapıp da nesneyi dispose ettiğinizde yinede bellekte parçacıklar bırakmaktadır. Bunu c# uygulamanızın bellek yönetimini detaylıca inceleyebileceğiniz SOS ile inceleyip bakabilirsiniz.


bu işlem için bir örnek anlatı.
string fl1 = "D:/tmp/test.tiff";
 
Bitmap bitmap = new Bitmap(fl1);
int count = bitmap.GetFrameCount(FrameDimension.Page);
GCHandle gc_bitmap = GCHandle.Alloc(bitmap, GCHandleType.Normal);
 
for (int i = 0; i < count; i++)
{
    bitmap.SelectActiveFrame(FrameDimension.Page, i);
    System.Threading.Thread.Sleep(1);
}
 
//bitmap dispose ile bellekte ayrılan alandan siliniyor
//fakat azda olsa parçacık bırakıyor
//bu parçacıklarda GC ile tamamen temizleniyor
bitmap.Dispose();
bitmap = null;
gc_bitmap.Free();
GC.Collect();

eğer yok etmek istediğiniz bir BYTE[] türünce obje ise,


GCHandleType.Normal  yazan kısım'ı GCHandleType.Pinned yapmanız yeterli.




-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil



Sayfayı Yazdır | Pencereyi Kapat