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
|