Delen via


gcUnmanagedToManaged MDA

Notitie

Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.

De gcUnmanagedToManaged beheerde foutopsporingsassistent (MDA) zorgt voor een garbagecollection wanneer een thread overgaat van onbeheerde naar beheerde code.

Symptomen

Een toepassing waarop niet-beheerde gebruikersonderdelen worden uitgevoerd met COM en platformaanroepen, veroorzaakt een niet-deterministische toegangsschending in de CLR.

Oorzaak

Als een toepassing niet-beheerde gebruikersonderdelen uitvoert, hebben deze onderdelen mogelijk de verzamelde heap beschadigd. Dit veroorzaakt een toegangsschending in de CLR wanneer de garbagecollector probeert de objectgrafiek te doorlopen.

Oplossing

Het inschakelen van deze assistent vermindert de tijd tussen wanneer het onbeheerde onderdeel de door garbagecollection verzamelde heap beschadigd en wanneer de toegangsschending plaatsvindt door af te dwingen dat er een garbagecollection plaatsvindt vóór elke beheerde overgang.

Effect op de runtime

Veroorzaakt een garbagecollection wanneer een thread overgaat van onbeheerde naar beheerde code.

Uitvoer

Deze MDA produceert geen uitvoer.

Configuratie

<mdaConfig>
  <assistants>
    <gcUnmanagedToManaged/>
  </assistants>
</mdaConfig>

Zie ook