Bir Visual Basic 2005 veya Visual Basic 2008 uygulamasının bir sınıfın örneğini oluşturur çalıştırdığınızda bellek kullanımı artıyor

Ö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:919481
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Belirtiler
Şu senaryoyu inceleyin:
  • Microsoft Visual Studio 2005 veya Visual Studio 2008'de bir Microsoft Visual Basic uygulaması oluşturma.
  • Visual Basic uygulamasını bir sınıf içerir.
  • Sınıfı bir olay içerir.
  • Visual Basic uygulamasını sınıfının bir örneğini oluşturur.
  • Hata ayıklama modunda Visual Basic uygulamasını derleyin.
Bu senaryoda, bellek kullanımı artar, Visual Basic uygulamasını çalıştırın.

NotBu davranış, aşağıdaki koşullar geçerli olduğunda fark daha büyük olasılıkla şunlardır:
  • Visual Basic uygulaması sürekli olarak uzun bir süre için çalışır.
  • Visual Basic uygulamasını birçok sınıfının örnekleri, bir olayı içeren oluşturur. Örnekleri yeterli bir kez oluşturulursa, uygulama sonunda "" bellek yetersiz veya bir OutOfMemoryException başlayamaz hata. Örneğin, Visual Basic uygulamasını sınıfının birden çok örneğini oluşturan bir döngü içeriyor.
Neden
Düzenle ve devam özelliği, Visual Studio 2005 veya Visual Studio 2008 için hata ayıklama tutar oluşturulan nesnelere zayıf başvuru listesi bu sorun oluşur. Oluşturulan nesne bir olayı içeren bir sınıf, bu zayıf başvuru program süresince tutulur. Bu davranış, bellek kullanımı artıyor.
Çözüm
Bu sorunu gidermek için aşağıdaki yöntemlerden birini kullanın.

Yöntem 1: Visual Basic uygulamayı yeniden başlatın.

Visual Basic uygulamasını yeniden başlatın. Bunu yaptığınızda, bellek serbest.

Yöntem 2: yayın modunda Visual Basic uygulamayı derleyin...

Visual Basic uygulamasını sürüm modunda derleyebilirsiniz. Yayım modunda derlenen bir Visual Basic uygulaması çalıştırdığınızda, bir olayı içeren bir sınıf örneği oluşturduğunuzda, bellek kullanımı artmaz.
Daha fazla bilgi

Sorunu yeniden oluşturma adımları

  1. Visual Studio 2005 veya Visual Studio 2008'i başlatın.
  2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
  3. Proje türü altında Visual Basic ' ı tıklatın. Visual Basic</a0> proje tipini göremiyorsanız, Diğer diller ' nı genişletin ve Visual Basic</a1>'ı tıklatın.
  4. Şablonları altında Konsol uygulaması) tıklatın.
  5. Projenin adını yazın ve Tamam ' ı tıklatın.
  6. Kod penceresinde kodu aşağıdaki kodla değiştirin.
    Module Module1  Private Sub CreateClassWithEvent()    Dim TestClass As New CLeak  End Sub  Sub Main()                   ' This loop infinitely creates a class that contains an event.    While True      CreateClassWithEvent()      System.GC.Collect()      System.GC.WaitForPendingFinalizers()      Threading.Thread.Sleep(50)    End While  End SubEnd ModuleClass CLeak  Event myEvent()End Class
  7. Başlat'ı hata ayıklamaHata Ayıkla menüsünde tıklatın.

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 919481 - Son İnceleme: 12/09/2015 05:49:37 - Düzeltme: 2.0

Microsoft Visual Studio 2008 Standard Edition, Microsoft Visual Studio 2008 Professional Edition, Microsoft Visual Studio 2005 Team System Architect Edition, Microsoft Visual Studio 2005 Team System Developer Edition, Microsoft Visual Studio 2005 Team System Test Edition, Microsoft Visual Studio 2005 Team System Team Foundation:, Microsoft Visual Studio 2005 Standard Edition, Microsoft Visual Studio 2005 Professional, Microsoft Visual Studio 2005 Express Edition, Microsoft Visual Basic 2005

  • kbnosurvey kbarchive kbmt kbtshoot kbprb KB919481 KbMttr
Geri bildirim