Sdílet prostřednictvím


gcManagedToUnmanaged – pomocník spravovaného ladění (MDA)

Poznámka:

Tento článek je specifický pro rozhraní .NET Framework. Nevztahuje se na novější implementace .NET, včetně .NET 6 a novějších verzí.

Pomocník gcManagedToUnmanaged spravovaného ladění (MDA) způsobí uvolňování paměti při každém přechodu vlákna ze spravovaného na nespravovaný kód.

Příznaky

Nespravovaná uživatelská komponenta vyvolá narušení přístupu při pokusu o použití spravovaného objektu, který byl vystaven modelu COM. Zdá se, že objekt COM byl vydán. Porušení přístupu je nedeterministické.

Příčina

Pokud nespravovaná komponenta nespravovaná komponenta nepočítá správně spravovaný objekt MODELU COM, může modul runtime shromáždit spravovaný objekt vystavený modelu COM, pokud nespravovaná komponenta stále obsahuje odkaz na objekt. Modul runtime volá Release během uvolňování paměti, takže pokud uživatelská komponenta používá objekt před uvolněním paměti, pak se ještě neshromažďuje. Toto je zdroj nedeterminismu.

Rozlišení

Povolení tohoto asistenta zkracuje dobu mezi tím, kdy má objekt nárok na shromažďování a Release je volána, což pomáhá zjistit, která nespravovaná komponenta se nejprve pokusí získat přístup k shromážděnému objektu.

Vliv na modul runtime

Způsobí uvolňování paměti při každém přechodu vlákna ze spravovaného na nespravovaný kód.

Výstup

Tento mdA nevygeneruje žádný výstup.

Konfigurace

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

Viz také