gcManagedToUnmanaged MDA

Note

Bu makale .NET Framework'e özgüdür. .NET 6 ve sonraki sürümleri de dahil olmak üzere daha yeni .NET uygulamaları için geçerli değildir.

Yönetilen gcManagedToUnmanaged hata ayıklama yardımcısı (MDA), bir iş parçacığı yönetilen koddan yönetilmeyen koda her geçişte çöp toplamaya neden olur.

Symptoms

Yönetilmeyen bir kullanıcı bileşeni, COM'a açık olan yönetilen bir nesneyi kullanmaya çalışırken erişim ihlali oluşturur. COM nesnesi serbest bırakılmış gibi görünüyor. Erişim ihlali belirsiz değildir.

Cause

Yönetilmeyen bir bileşen, yönetilen bir COM nesnesini doğru saymaya başvurulmuyorsa, yönetilmeyen bileşen nesneye hala başvuruda bulunduğunda çalışma zamanı COM'a açık bir yönetilen nesne toplayabilir. Çalışma zamanı çöp toplama sırasında çağrılar Release , bu nedenle kullanıcı bileşeni çöp toplama gerçekleşmeden önce nesnesini kullanırsa, henüz toplanmaz. Bu, belirsizliğin kaynağıdır.

Çözünürlük

Bu yardımcının etkinleştirilmesi, nesnenin koleksiyon için uygun olduğu ve çağrıldığı zaman arasındaki süreyi kısaltır ve Release hangi yönetilmeyen bileşenin toplanan nesneye ilk kez erişmeye çalıştığını izlemeye yardımcı olur.

Çalışma Zamanı üzerindeki etkisi

bir iş parçacığı yönetilen koddan yönetilmeyen koda her geçişte çöp toplamaya neden olur.

Çıkış

Bu MDA çıkış üretmez.

Konfigürasyon

<mdaConfig>
  <assistants>
    <gcManagedToUnmanaged/>
  </assistants>
</mdaConfig>

Ayrıca bakınız