Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Skapar ett handtag som omsluter ett angivet objekt.
Syntax
HRESULT CreateHandle(
[in] ObjectID object,
[in] COR_PRF_HANDLE_TYPE type,
[out] ObjectHandleID* pHandle);
Parameterar
object
[i] Objektreferensen som ska omslutas med ett handtag.
type
[i] Typ av handtag som ska skapas.
pHandle
[ut] En pekare som tillhandahålls av anroparen och som pekar på handtaget som skapats för att omsluta den angivna object.
Anmärkningar
Följande är de förväntade användningarna beroende på det angivna COR_PRF_HANDLE_TYPE värdet:
-
COR_PRF_HANDLE_TYPE_WEAK: Övervakar om ett objekt förblir i minnet över tid. Om det omslutna objektet har samlats in returnerar ICorProfilerInfo13::GetObjectIDFromHandle en nullObjectID. -
COR_PRF_HANDLE_TYPE_STRONG: Framtvingar att ett objekt överlever skräpsamlingar även om inget annat objekt refererar till det. -
COR_PRF_HANDLE_TYPE_PINNED: Samma som ett starkt handtag men säkerställer också att objektet förblir på samma adress i minnet under skräpsamlingar.
För att säkerställa att referensen object är giltig måste den här metoden anropas från en ICorProfilerCallback metod som ICorProfilerCallback::ObjectAllocated. Du kan inte anropa CreateHandle från en asynkron EventPipe-lyssnare. Objektet som tas emot via en händelsenyttolast kan ha tagits bort eller flyttats i minnet om en skräpinsamling inträffade mellan den tidpunkt då händelsen skickades och när den togs emot.
Glöm inte att anropa ICorProfilerInfo13::D estroyHandle när ett skapat handtag inte längre behövs. Vi rekommenderar att mindre än 4 096 handtag allokeras samtidigt för att undvika att påverka skräpinsamlarens prestanda.
Kravspecifikation
Plattformar: Se Operativsystem som stöds av .NET.
Rubrik: CorProf.idl, CorProf.h
.NET-versioner: Tillgänglig sedan .NET 7.0