gcManagedToUnmanaged – pomocník spravovaného ladění (MDA)
Pomocník gcManagedToUnmanaged
spravovaného ladění (MDA) způsobí uvolňování paměti pokaždé, když vlákno přejde ze spravovaného na nespravovaný kód.
Příznaky
Součást nespravovaného uživatele 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 uvolněn. Narušení přístupu je nedeterministické.
Příčina
Pokud nespravovaná komponenta nespravuje odkazy na spravovaný objekt COM správně, modul runtime může 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 komponenta uživatele použije objekt před tím, než dojde k uvolňování paměti, pak se ještě neshromažďuje. To je zdroj nedeterminismu.
Řešení
Povolení tohoto pomocníka zkracuje dobu mezi tím, kdy je objekt způsobilý ke kolekci a je volána, což Release pomáhá zjistit, která nespravovaná komponenta se nejprve pokusí o přístup ke shromážděnému objektu.
Vliv na modul runtime
Způsobí uvolňování paměti pokaždé, když vlákno přejde ze spravovaného na nespravovaný kód.
Výstup
Tento mda nevytváří žádný výstup.
Konfigurace
<mdaConfig>
<assistants>
<gcManagedToUnmanaged/>
</assistants>
</mdaConfig>
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro