HandleRef 구조체

정의

플랫폼 호출을 사용하여 관리되지 않는 코드에 전달되는 리소스에 핸들을 보유하는 관리되는 개체를 래핑합니다.

public value class HandleRef
public struct HandleRef
[System.Runtime.InteropServices.ComVisible(true)]
public struct HandleRef
public readonly struct HandleRef
type HandleRef = struct
[<System.Runtime.InteropServices.ComVisible(true)>]
type HandleRef = struct
Public Structure HandleRef
상속
HandleRef
특성

설명

Important

클래스의 HandleRef 기능은 클래스 및 해당 파생 클래스뿐만 아니라 클래스로 CriticalHandle 대체 SafeHandle 되었습니다.

플랫폼 호출을 사용하여 관리되는 개체를 호출하고 플랫폼 호출 후 다른 위치에서 개체를 참조하지 않는 경우 가비지 수집기에서 관리되는 개체를 완료할 수 있습니다. 이 작업은 리소스를 해제하고 핸들을 무효화하여 플랫폼 호출 호출이 실패하게 합니다. 핸들 HandleRef 을 래핑하면 플랫폼 호출 호출이 완료될 때까지 관리되는 개체가 가비지 수집되지 않습니다. 플랫폼 호출 서비스에 대한 설명은 관리되지 않는 DLL 함수 사용을 참조하세요.

값 형식( HandleRef 예: GCHandleinterop 마샬러)이 인식하는 특수 형식입니다. 고정되지 GCHandle 않은 정상은 불시의 가비지 수집을 방지하면서도 HandleRef 더 나은 성능을 제공합니다. HandleRef 플랫폼 호출 호출 기간 동안 개체를 활성 상태로 유지하는 것이 선호되지만 동일한 용도로 이 메서드를 GC.KeepAlive 사용할 수도 있습니다.

HandleRef 생성자는 래퍼를 나타내는 매개 변수와 IntPtr 관리되지 않는 핸들을 나타내는 두 개의 매개 변수 Object 를 사용합니다. interop 마샬러는 핸들만 관리되지 않는 코드에 전달하고 호출 기간 동안 래퍼(생성자에 HandleRef첫 번째 매개 변수로 전달됨)가 활성 상태로 유지되도록 합니다.

생성자

Name Description
HandleRef(Object, IntPtr)

래핑할 개체와 관리되지 않는 코드에서 사용하는 리소스에 대한 핸들을 사용하여 클래스의 새 인스턴스 HandleRef 를 초기화합니다.

속성

Name Description
Handle

리소스에 대한 핸들을 가져옵니다.

Wrapper

리소스에 대한 핸들을 보유하는 개체를 가져옵니다.

메서드

Name Description
ToIntPtr(HandleRef)

개체의 내부 정수 표현을 HandleRef 반환합니다.

연산자

Name Description
Explicit(HandleRef to IntPtr)

지정된 HandleRef 개체의 리소스에 대한 핸들을 반환합니다.

적용 대상

추가 정보