Rehber C#'da Dispose metodu nedir ve nasıl kullanılır?

Merhaba.

Bugün sizlere C# dilinde yer alan Dispose() metodunun ne işe yaradığını ve nasıl kullanıldığını anlatmaya çalışacağım.

Öncelike Dispose() nedir?

Dispose()
, bir işlemden sonra yapılan işlemi bellekten atmak demek. Yani, siz bir işlemi bitirirken Close() metodu kullandığınız zaman bu işlem bellekte durmaya ve yer kaplamaya devam eder. Dispose() metodu, bu yapılan işlemi bellekten atar.

C#:
            SaveFileDialog save_engine = new SaveFileDialog{
                InitialDirectory = @"C:\Users\" + SystemInformation.UserName + @"\Desktop\",
                Title = $"{Application.ProductName} - Please select the location to save",
                DefaultExt = "txt",
                FileName = $"{Application.ProductName} - System Report",
                Filter = "Text Document (*.txt)|*.txt"
            };
            if (save_engine.ShowDialog() == DialogResult.OK){
                MessageBox.Show($"Yazdırma işlemi tamamlandı.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            save_engine.Dispose();

Bu kod örneğinde gördüğünüz üzere bir yazdırma işleminden sonra SaveFileDialog nesnesini Dispose() ediyoruz. Bu sayede binlerce yazdırma yapıldıktan sonra bellekte yer kaplayan veriler bellekten atılıyor.

Not: Open(), Close() veya Clear() metodunu Dispose() metodundan sonra kullanırsanız program çöker.

Not: Bellekten Dispose() ile atılan nesne üzerine tekrar işlem yapılmaz.

Clear(), Close(), Dispose() arasındaki fark;
  • Clear() metodu: Verilerin olduğu alanı temizler. Ancak, veriler bellekte durmaya devam eder.
  • Close() metodu: Close bir işlemi sonlandırır. Ancak, veriler bellekte durmaya devam eder.
  • Dispose() metodu: Bir işlemi sonlandırır ve bellekten atar. Bellekten atılan veri üzerinde tekrar işlem yapılmaz.
Özellike veri tabanı işlemleri yaparken mutlaka Dispose metodunu kullanın. Bellekte duran nesne her zaman tehdit oluşturur. O yüzden bir işlem yaptıktan sonra mutlaka yaptığınız işlemi Dispose() metodu ile bellekten atın.

Tek güvenlik için değil tabii ki Dispose() metodu. Programın yüksek bellek kullanmasını önlemek gibi işlemler için çok önem arz eder.


Buraya kadar okuduysanız teşekkür ederim.
Yazılım rehberlerinin devamı gelecek.

İyi çalışmalar:)
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı