HandleRef 구조체
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
플랫폼 호출을 사용하여 관리되지 않는 코드에 전달되는 리소스에 핸들을 보유하는 관리되는 개체를 래핑합니다.
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
- 상속
- 특성
설명
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 개체의 리소스에 대한 핸들을 반환합니다. |