Makale numarası: 938416 - Son Gözden Geçirme: 26 Temmuz 2007 Perşembe - Gözden geçirme: 1.1 Windows Presentation Foundation veri bağlantısı'nı kullandığınızda bellek sızıntısı oluşabilir
Bu SayfadaBelirtilerMicrosoft Windows Presentation Foundation (WPF) veri bağlama'ı kullandığınızda bellek sızıntısı oluşabilir. NedenBu sorun, aşağıdaki koşullar geçerli olursa oluşur:
Pratik ÇözümBu soruna geçici bir çözüm için aşağıdaki yöntemlerden birini kullanın. Yöntem 1<a1>Özellik</a1> PDependencyProperty bir nesnesi üzerinden erişebilirsiniz.Yöntem 2X nesnesini INotifyPropertyChanged arabirimde karşı açık duruma getirmiş olursunuz.Yöntem 3Veri bağlamada OneTime için ayarlayın.DurumBu davranış tasarım yüzündendir. Daha fazla bilgiWPF içinde OneTime özelliği için dinleme gerekir olarak işaretlenmemiş bir veri bağlama işlemi, kaynak nesneyi (X nesnesini) bildirimleri değiştirin. WPF, yerleşik bildirimleri DependencyProperties sınıfının veya bildirimleri INotifyPropertyChanged arabirimden kullanır. DependencyProperties sınıf ve INotifyPropertyChanged arabirim kullanılamıyorsa, WPF ValueChanged olay kullanır. Bu davranış, P özelliğine denk PropertyDescriptor nesnesinde PropertyDescriptor.AddValueChanged yöntem çağırma içerir. Ne yazık ki, bu eylem, bu PropertyDescriptor nesnenin nesne X güçlü bir başvuru oluşturmak ortak dil çalışma zamanı (CLR) neden olur. CLR, PropertyDescriptor nesnesine başvuru da genel bir tabloda saklar. Bu davranış, aşağıdaki sırayla gerçekleşmesi bir başvuru zinciri neden olur:
WPF, tercih edilen bir bildirim mekanizmalar kullanmak, geçici çözüm yöntem 1 ve yöntem 2'in çözüm neden. Geçici çözüm yöntem 3'ü WPF değişiklik bildirimlerine dinlemek üzere yönlendirir. Tüm üç geçici çözüm yöntemleri arasında PropertyDescriptor nesne başvurusu oluşturmaktan kaçının ve X nesne. Aşağıdaki kod örneği, sızıntısı koşullarını oluşturulur. "Neden" bölümünde ilk koşulu, çünkü için X nesnesinin alt nesnesi X başvuruyor karşılanır. Bağlama hedef TextBlock öğedir ve bu alt bağlama hedef içerir. Ikinci bir koşul "Neden" bölümünde, <a1>özellik</a1> PDependencyProperty bir nesne değil ve <a1>Nesne</a1> XINotifyPropertyChanged arabirimini uygulamıyor karşılanır. Bu davranış, UIElementCollection sınıfı ve serbest bırakılacak TextBlock öğe neden olur. UIElementCollection sınıfı, bir başvuru StackPanel kapsayıcı sınıfı içerdiğinden ayrıca StackPanel kapsayıcı sınıfı, serbest bırakılmaz. UIElementCollection sınıfı ve TextBlock öğenin ana ağaçtan code:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:938416
(http://support.microsoft.com/kb/938416/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukMakale çevirileri |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste