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.
ChangeMonitor sınıfının geçerli örneği tarafından kullanılan tüm kaynakları serbest bırakır.
Aşırı Yüklemeler
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 ChangeMonitor yapılan 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 anahtar yaşam döngüsü olaylarıyla (başlatma gibi) bertaraf 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 izleme sınıfları tarafından uygulanır.
Dispose()
- 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
Başlatma, temel Dispose() yöntemi çağıran türetilmiş change-monitor sınıfında tamamlanmıyor.
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 true
ayarlanı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 bunun ç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ğırmakla sorumludur. Ekleme girişimi bir ö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 bağımlılığı da atması gerekir.
yönteminin OnChanged iç uygulaması, yöntemi aracılığıyla NotifyOnChanged kaydedilen bir geri çağırmayı çağırdıktan sonra yöntemini otomatik olarak çağırırDispose.
Not
Olay tetiklenirken bu otomatik atma işlemi yalnızca örneğin başlatması 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.
Not
Kullanıcılar yöntemini çağırmamalıdır Dispose . Ancak, kullanıcıların yöntemini çağırmasını engelleyemezsiniz. Bu nedenle, bu durumda OnChanged yöntemi ç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
Yönetilen ve yönetilmeyen tüm kaynakları ve örneğe ChangeMonitor yapılan 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 tüm 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 zaten çöp olarak toplandıklarından artık geçerli değildir.
Açıklamalar
Değerin 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 çöp 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 true
tü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 birlikte 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ş değişiklik izleyicisi, temel ChangeMonitor sınıfta public parameter-less 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 disposing
false
geçirebilir. Ancak, bu genellikle gereksizdir. Bağımlılık değişikliklerini izleme işlemi genellikle değişiklik izleme ö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 kılar. Bellek sızıntılarını önlemek için, bağımlılık değiştiğinde OnChanged(Object) yöntemi change-monitor örneğini atar (başlatma tamamlanmadığı sürece).