Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erstellt ein Handle, das ein angegebenes Objekt umschließt.
Syntax
HRESULT CreateHandle(
[in] ObjectID object,
[in] COR_PRF_HANDLE_TYPE type,
[out] ObjectHandleID* pHandle);
Die Parameter
object
[in] Der Objektverweis, der mit einem Handle umbrochen werden soll.
type
[in] Der Typ des zu erstellenden Handles.
pHandle
[out] Ein vom Aufrufer bereitgestellter Zeiger, der auf das handle verweist, das zum Umbrechen des angegebenen object
Handles erstellt wurde.
Bemerkungen
Im Folgenden sind die erwarteten Verwendungen abhängig vom angegebenen COR_PRF_HANDLE_TYPE
Wert aufgeführt:
-
COR_PRF_HANDLE_TYPE_WEAK
: Überwacht, ob ein Objekt im Arbeitsspeicher im Laufe der Zeit verbleibt. Wenn das umschlossene Objekt erfasst wurde, gibt ICorProfilerInfo13::GetObjectIDFromHandle einen NullwertObjectID
zurück. -
COR_PRF_HANDLE_TYPE_STRONG
: Erzwingt, dass ein Objekt die Garbage Collections überlebt, auch wenn kein anderes Objekt darauf verweist. -
COR_PRF_HANDLE_TYPE_PINNED
: Identisch mit einem starken Handle, stellt aber auch sicher, dass das Objekt während der Garbage Collections an derselben Adresse im Arbeitsspeicher bleibt.
Um sicherzustellen, dass der object
Verweis gültig ist, muss diese Methode von einer ICorProfilerCallback
Methode wie ICorProfilerCallback::ObjectAllocated aufgerufen werden. Sie können von einem asynchronen EventPipe-Listener nicht aufrufen CreateHandle
. Das über eine Ereignisnutzlast empfangene Objekt wurde möglicherweise verworfen oder im Arbeitsspeicher verschoben, wenn zwischen dem Zeitpunkt, zu dem das Ereignis ausgegeben wurde, eine Garbage Collection aufgetreten ist und wann es empfangen wurde.
Vergessen Sie nicht, ICorProfilerInfo13::D estroyHandle aufzurufen, sobald ein erstelltes Handle nicht mehr benötigt wird. Es wird empfohlen, weniger als 4096 Ziehpunkte gleichzeitig zugeordnet zu haben, um zu vermeiden, dass sich die Leistung des Garbage Collectors auswirkt.
Anforderungen
Plattformen: Siehe .NET unterstützte Betriebssysteme.
Kopfball: CorProf.idl, CorProf.h
.NET-Versionen: Verfügbar seit .NET 7.0