Methode ICorProfilerInfo13::CreateHandle
Hiermee maakt u een ingang waarmee een opgegeven object wordt verpakt.
Syntaxis
HRESULT CreateHandle(
[in] ObjectID object,
[in] COR_PRF_HANDLE_TYPE type,
[out] ObjectHandleID* pHandle);
Parameters
object
[in] De objectverwijzing om te verpakken met een ingang.
type
[in] Het type ingang dat moet worden gemaakt.
pHandle
[uit] Een aanroeper opgegeven aanwijzer die verwijst naar de greep die is gemaakt om de opgegeven object
terugloop te verpakken.
Opmerkingen
Hieronder volgen de verwachte gebruiksgegevens, afhankelijk van de opgegeven COR_PRF_HANDLE_TYPE
waarde:
COR_PRF_HANDLE_TYPE_WEAK
: Controleert of een object gedurende een bepaalde periode in het geheugen blijft. Als het verpakte object is verzameld, retourneert ICorProfilerInfo13::GetObjectIDFromHandle een nullObjectID
.COR_PRF_HANDLE_TYPE_STRONG
: Hiermee wordt afgedwongen dat een object afvalverzamelingen overleeft, zelfs als er geen ander object ernaar verwijst.COR_PRF_HANDLE_TYPE_PINNED
: Hetzelfde als een sterke ingang, maar zorgt er ook voor dat het object op hetzelfde adres in het geheugen blijft tijdens garbagecollecties.
Om ervoor te zorgen dat de object
verwijzing geldig is, moet deze methode worden aangeroepen vanuit een ICorProfilerCallback
methode zoals ICorProfilerCallback::ObjectAllocated. U kunt niet bellen CreateHandle
vanuit een EventPipe asynchrone listener. Het object dat is ontvangen via een nettolading van een gebeurtenis, is mogelijk verwijderd of verplaatst in het geheugen als er een garbagecollection is opgetreden tussen het moment dat de gebeurtenis werd verzonden en wanneer deze werd ontvangen.
Vergeet niet om ICorProfilerInfo13::D estroyHandle aan te roepen zodra een gemaakte ingang niet meer nodig is. Het wordt aanbevolen om minder dan 4096 ingangen tegelijk toe te wijzen om te voorkomen dat de prestaties van de garbagecollector worden beïnvloed.
Vereisten
Platforms: Zie ondersteunde besturingssystemen van .NET.
Koptekst: CorProf.idl, CorProf.h
.NET-versies: beschikbaar sinds .NET 7.0