gcManagedToUnmanaged MDA
Feljegyzés
Ez a cikk a .NET-keretrendszer vonatkozik. Ez nem vonatkozik a .NET újabb implementációira, beleértve a .NET 6-os és újabb verzióit.
A gcManagedToUnmanaged
felügyelt hibakeresési segéd (MDA) szemétgyűjtést okoz, amikor egy szál átáll a felügyelt kódról a nem felügyelt kódra.
Hibajelenségek
A nem felügyelt felhasználói összetevők hozzáférés-megsértést okoznak, amikor a COM-nak közzétett felügyelt objektumot próbálnak használni. Úgy tűnik, hogy a COM-objektum ki lett adva. A hozzáférés megsértése nem meghatározott.
Ok
Ha egy nem felügyelt összetevő nem hivatkozik a felügyelt COM-objektumok helyes számlálására, akkor a futtatókörnyezet összegyűjthet egy, a COM számára közzétett felügyelt objektumot, ha a nem felügyelt összetevő továbbra is az objektumra mutató hivatkozást tartalmaz. A futásidejű hívások Release a szemétgyűjtés során történnek, ezért ha a felhasználói összetevő a szemétgyűjtés előtt használja az objektumot, akkor az még nem lesz összegyűjtve. Ez a nemdeterminizmus forrása.
Resolution (Osztás)
Az asszisztens engedélyezése csökkenti az objektum gyűjteményre való jogosultságának és Release meghívásának időpontja közötti időt, így segít nyomon követni, hogy melyik nem felügyelt összetevő próbálja meg először elérni az összegyűjtött objektumot.
Effektus a futtatókörnyezetre
Szemétgyűjtést okoz, amikor egy szál átáll a felügyelt kódról a nem felügyelt kódra.
Hozam
Ez az MDA nem hoz létre kimenetet.
Konfiguráció
<mdaConfig>
<assistants>
<gcManagedToUnmanaged/>
</assistants>
</mdaConfig>
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: