İçindekiler:
Tanımı - Finalize ne anlama geliyor?
Sonlandırma, yönetilmeyen kaynakları boşaltmak ve çöp toplama (GC) öncesinde temizleme işlemleri gerçekleştirmek için gereken kodu içeren bir nesne yöntemidir.
Sonlandırma yöntemi, .NET tarafından yönetilmeyen kaynakları temizlemek için kullanılır. .NET çerçevesi, bellek yönetimi görevlerini dolaylı olarak gerçekleştirerek yönetilen kaynakları serbest bırakmak üzere tasarlanmış olsa da, dosya tanıtıcıları ve veritabanı bağlantıları gibi yönetilmeyen uygulama kaynaklarının açıkça yayımlanması gerekir.
Techopedia sonuçlandırmayı açıklıyor
Sonlandırma, GC tarafından dolaylı olarak çağrılacak şekilde tasarlanmış olsa da, dispose yöntemi kullanıcı koduyla açık kaynaklara açıkça çağrılabilir.
Sonlandırma, her biri nesne kaynaklarını serbest bırakmaktan sorumlu olduğu için geleneksel C ++ yıkıcılarına benzer. C ++ yıkıcılar, bir nesne kapsam dışına çıktığında hemen yürütülürken, GC'de nesne temizleme sırasında sonlandırma çağrılır. C # 'da, sonlandırma doğrudan çağrılamaz veya geçersiz kılınamaz. Bir yıkıcı bildirilirse, program derlendiğinde sonlandırma yöntemine dönüştürülür.
Sonlandırma sırasında bellek ayırmadan veya sanal yöntemleri çağırmaktan kaçınılmalıdır. Sonuçlandırma kapsamı, yalnızca aynı sınıftan veya türetilmiş sınıfından erişilebilecek şekilde korunmalıdır. Sonlandırma başka nesnelere başvurmamalıdır. C # 'da, doğrudan temel sınıfı dışında bir nesne üzerinde sonlandırma çağrısı geçersiz bir işlemdir. Sonlandırma kodu, arama dizisini engelleyebilecek aramalar olmadan minimum olmalıdır. Sonlandırma özel bir iş parçacığı tarafından çağrıldığından, kodu yerel iş parçacığı depolamasını veya iş parçacığı benzeşimi gerektiren herhangi bir tekniği kullanmamalıdır.
Determinizm eksikliği ve GC performansı üzerindeki etkileri nedeniyle finalize'i yönetilmeyen belleği veya kaynakları serbest bırakmak için bir geri dönüş mekanizması olarak kullanmak önemlidir.
