Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vytvoří popisovač, který zabalí zadaný objekt.
Syntaxe
HRESULT CreateHandle(
[in] ObjectID object,
[in] COR_PRF_HANDLE_TYPE type,
[out] ObjectHandleID* pHandle);
Parametry
object
[v] Odkaz na objekt, který se má zalomit pomocí úchytu.
type
[v] Typ popisovače, který chcete vytvořit.
pHandle
[ven] Ukazatel poskytnutý volajícím, který bude odkazovat na popisovač vytvořený k zabalení zadaného objectobjektu .
Poznámky
V závislosti na zadané COR_PRF_HANDLE_TYPE hodnotě platí následující očekávané využití:
-
COR_PRF_HANDLE_TYPE_WEAK: Monitoruje, jestli objekt zůstane v paměti v průběhu času. Pokud byl shromážděn zabalený objekt , ICorProfilerInfo13::GetObjectIDFromHandle vrátí hodnotu nullObjectID. -
COR_PRF_HANDLE_TYPE_STRONG: Vynucuje, aby objekt přežil uvolňování paměti, i když na něj žádný jiný objekt odkazuje. -
COR_PRF_HANDLE_TYPE_PINNED: Stejný jako silný popisovač, ale také zajišťuje, že objekt zůstane ve stejné adrese v paměti během uvolňování paměti.
Chcete-li zajistit, aby object odkaz byl platný, musí být tato metoda volána z ICorProfilerCallback metody, jako je ICorProfilerCallback::ObjectAllocated. Nelze volat CreateHandle z asynchronního naslouchacího procesu EventPipe. Objekt přijatý prostřednictvím datové části události mohl být uvolněn nebo přesunut v paměti, pokud došlo k uvolňování paměti mezi časem, kdy byla událost vygenerována a kdy byla přijata.
Nezapomeňte zavolat ICorProfilerInfo13::D estroyHandle , jakmile vytvořený popisovač už není potřeba. Doporučuje se mít současně přidělené méně než 4096 popisovačů, aby nedošlo k ovlivnění výkonu uvolňování paměti.
Požadavky
Platformy: Viz podporované operační systémy .NET.
Záhlaví: CorProf.idl, CorProf.h
Verze .NET: K dispozici od .NET 7.0