ChangeMonitor.Dispose Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Sınıfın geçerli örneği ChangeMonitor tarafından kullanılan tüm kaynakları serbest bırakır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Dispose() |
Sınıfın geçerli örneği ChangeMonitor tarafından kullanılan tüm kaynakları serbest bırakır. |
| Dispose(Boolean) |
Yönetilen ve yönetilmeyen tüm kaynakları ve örneğe yapılan ChangeMonitor başvuruları serbest bırakır. Bu aşırı yükleme, türetilmiş değişiklik izleyici sınıfları tarafından uygulanmalıdır. |
Açıklamalar
Dispose yöntemi örneği ve ilgili kaynakları serbest bırakmak ChangeMonitor için kullanılır. Türetilmiş değişiklik izleyici sınıflarının önemli yaşam döngüsü olaylarıyla (başlatma gibi) elden çıkarma işlemini koordine etmek ve örneğin çöp toplanabilmesi için örneği serbest bırakmak ChangeMonitor için ortak Dispose yöntem çağrılır. Dispose yöntemi, yönetilen ve yönetilmeyen kaynaklarını atmak için türetilmiş değişiklik izleyici sınıfları tarafından uygulanır.
Dispose()
- Kaynak:
- ChangeMonitor.cs
- Kaynak:
- ChangeMonitor.cs
- Kaynak:
- ChangeMonitor.cs
- Kaynak:
- ChangeMonitor.cs
Sınıfın geçerli örneği ChangeMonitor tarafından kullanılan tüm kaynakları serbest bırakır.
public:
virtual void Dispose();
public void Dispose();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()
Uygulamalar
Özel durumlar
Temel Dispose() yöntemi çağıran türetilmiş change-monitor sınıfında başlatma tamamlanmadı.
Açıklamalar
Dispose yöntemi, türetilmiş sınıfların yöntemini yalnızca bir kez çağırır Dispose ve ilk kez çağrılır. Yöntemine yapılan sonraki çağrıların Dispose hiçbir etkisi yoktur. yöntemi çağrıldıktan IsDisposed sonra özelliği olarak trueayarlanır.
Bir Dispose örneği atmak ChangeMonitor için aşırı yükleme çağrılmalıdır. Dispose yöntemini çağırmak için kurallar şunlardır:
Bir öğe önbelleğe eklenmeden önce, bir ChangeMonitor örneği atmak çağıranın sorumluluğundadır.
Önbellek öğesi ve ChangeMonitor onunla ilişkilendirilmiş örnekler bir önbelleğe geçirildikten sonra, ekleme başarısız olsa bile çağrıldığından Dispose emin olması gereken önbellek uygulayıcısı.
Bir öğe ve ilişkili ChangeMonitor örnekleri önbelleğe geçirildikten sonra, çağıranın bağımlılığı atmaması gerekir çünkü yöntem çağrıldığında Dispose , çağrı bağımlılık değişmiş gibi kabul edilir. Sonuç olarak yöntemi OnChanged otomatik olarak çağrılır.
Bu kurallar dikkate alındığında yöntemi Dispose aşağıdaki yollardan biriyle çağrılmalıdır:
Kullanıcılar türetilmiş değişiklik izleyicisi örneğini önbelleğe eklememeye karar verirse yöntem aşırı yüklemesini çağırmalıdır Dispose .
Uygulama change-monitor örneğini Dispose bir nesne önbelleğine eklemeye çalışırsa ancak ekleme başarısız olursa önbellek uygulaması aşırı yüklemeyi çağırmaktan sorumludur. Ekleme girişimi özel duruma neden olduğunda, önbellek uygulamasının ilişkili bağımlılıkları atması gerekir.
Önbellek girdisi kaldırılırsa, önbellek uygulamasının da bağımlılığı atması gerekir.
yönteminin OnChanged iç uygulaması, yöntemi aracılığıyla NotifyOnChanged kaydedilen bir geri çağırma çağırdıktan sonra yöntemini otomatik olarak çağırırDispose.
Uyarı
Olay tetiklenirken bu otomatik atma işlemi yalnızca örneğin başlatılması ChangeMonitor daha önce tamamlandıysa gerçekleşir.
Türetilmiş bir değişiklik izleyicisinin oluşturucusunun InitializationComplete yöntemini çağırması durumunda, değişiklik izleyicisinin durumu zaten değişmişse (yani, oluşturucu hala etkinken izlenen durum zaten değişmişse) InitializationComplete yöntem değişiklik izleyicisini otomatik olarak atacaktır.
Uyarı
Kullanıcılar yöntemini çağırmamalıdır Dispose . Ancak, kullanıcıların yöntemini çağırmasını engelleyemezsiniz. Bu nedenle, bunu yaparlarsa yöntemi OnChanged çağrılır. Bu durumda, önbellek girdisine bağımlılık değişmiş gibi bildirilir.
Türetilmiş sınıfların yöntemi geçersiz kılmasını Dispose önlemek için yöntemi açık bir arabirim uygulaması değildir.
Ayrıca bkz.
Şunlara uygulanır
Dispose(Boolean)
- Kaynak:
- ChangeMonitor.cs
- Kaynak:
- ChangeMonitor.cs
- Kaynak:
- ChangeMonitor.cs
- Kaynak:
- ChangeMonitor.cs
Yönetilen ve yönetilmeyen tüm kaynakları ve örneğe yapılan ChangeMonitor başvuruları serbest bırakır. Bu aşırı yükleme, türetilmiş değişiklik izleyici sınıfları tarafından uygulanmalıdır.
protected:
abstract void Dispose(bool disposing);
protected abstract void Dispose(bool disposing);
abstract member Dispose : bool -> unit
Protected MustOverride Sub Dispose (disposing As Boolean)
Parametreler
- disposing
- Boolean
true yönetilen ve yönetilmeyen kaynakları ve bir ChangeMonitor örneğe yapılan başvuruları serbest bırakmak; false yalnızca yönetilmeyen kaynakları serbest bırakmak için. Geçirildiğinde false , Dispose(Boolean) yöntemi bir finalizer iş parçacığı tarafından çağrılır ve dış yönetilen başvurular büyük olasılıkla artık geçerli değildir çünkü bunlar zaten çöp olarak toplanmıştır.
Açıklamalar
değerinin disposing değeri olduğunda true, tüm yönetilen ve yönetilmeyen kaynaklar atılır ve türetilmiş değişiklik izleyici örneğinin atık olarak toplanabilmesi için bu nesneye yapılan tüm başvurular serbest bırakılır. Temel Dispose yöntemin uygulanan Dispose yöntemi yalnızca bir kez çağıracağı garanti edilir.
Uygulayanlara Notlar
Bir değişiklik izleyicisinin Dispose(Boolean) değeri disposing olduğunda truetüm yönetilen ve yönetilmeyen kaynakları serbest bırakmak için aşırı yüklemeyi uygulaması gerekir.
Dispose(Boolean) değeri true olan yöntem aşırı yüklemesi, örneğin ilk kez atılmasıyla yalnızca bir disposing kez çağrılır. Değişiklik izleyicisi Dispose(Boolean) aşırı yüklemeyi doğrudan çağırmamalıdır. Türetilmiş bir değişiklik izleyicisi, temel ChangeMonitor sınıfta genel parametresiz Dispose() yöntemini çağırabilir.
Alternatif olarak, değişiklik izleyicisi bir sonlandırıcı yöntemi uygulayabilir. Bu durumda, sonlandırıcı yöntemini çağırabilir Dispose(Boolean) ve değerini disposingfalsegeçirebilir. Ancak, bu genellikle gereksizdir. Bağımlılık değişikliklerini izleme genellikle değişiklik izleyicisi örneğine başvuru sağlayan bir hizmet tarafından gerçekleştirilir. Başvuru, örneğin çöp toplamasını engeller ve bu nedenle sonlandırıcı yöntemini gereksiz hale getirir. Bellek sızıntılarını önlemek için, bir bağımlılık değiştiğinde OnChanged(Object) yöntemi change-monitor örneğini atar (başlatma tamamlanmadığı sürece).