Megosztás a következőn keresztül:


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