ICorProfilerInfo13::CreateHandle 메서드
지정된 개체를 래핑하는 핸들을 만듭니다.
구문
HRESULT CreateHandle(
[in] ObjectID object,
[in] COR_PRF_HANDLE_TYPE type,
[out] ObjectHandleID* pHandle);
매개 변수
object
[in] 핸들로 래핑할 개체 참조입니다.
type
[in] 만들 핸들의 형식입니다.
pHandle
[out] 지정된 object
를 래핑하기 위해 만들어진 핸들을 가리키는 호출자 제공 포인터입니다.
설명
다음은 지정된 COR_PRF_HANDLE_TYPE
값에 따라 예상되는 용도입니다.
COR_PRF_HANDLE_TYPE_WEAK
: 시간이 지남에 따라 개체가 메모리에 남아 있는지 모니터링합니다. 래핑된 개체가 수집된 경우 ICorProfilerInfo13::GetObjectIDFromHandle은 nullObjectID
를 반환합니다.COR_PRF_HANDLE_TYPE_STRONG
: 다른 개체가 참조하지 않는 경우에도 개체가 가비지 수집에서 살아남도록 합니다.COR_PRF_HANDLE_TYPE_PINNED
: 강력한 핸들과 동일하지만 가비지 수집 중에 개체가 메모리의 동일한 주소에 유지되도록 합니다.
object
참조가 유효한지 확인하려면 ICorProfilerCallback::ObjectAllocated와 같은 ICorProfilerCallback
메서드에서 이 메서드를 호출해야 합니다. EventPipe 비동기 수신기에서 CreateHandle
을 호출할 수 없습니다. 이벤트 페이로드를 통해 수신된 개체는 이벤트가 발생한 시간과 이벤트가 수신된 시간 사이에 가비지 수집이 발생한 경우 메모리에서 삭제되거나 이동되었을 수 있습니다.
만들어진 핸들이 더 이상 필요하지 않으면 ICorProfilerInfo13::DestroyHandle을 호출하는 것을 잊지 마세요. 가비지 수집기의 성능에 영향을 미치지 않도록 4096개 미만의 핸들을 동시에 할당하는 것이 좋습니다.
요구 사항
플랫폼:.NET 지원 운영 체제를 참조하세요.
헤더: CorProf.idl, CorProf.h
.NET 버전: .NET 7.0부터 사용 가능
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET