다음을 통해 공유


ThreadPoolBoundHandle.UnsafeAllocateNativeOverlapped 메서드

정의

중요

이 API는 CLS 규격이 아닙니다.

비동기 I/O 작업이 완료될 때 호출되는 대리자, 컨텍스트를 제공하는 사용자 제공 개체 및 버퍼 역할을 하는 관리되는 개체를 지정하여 구조체에 대한 관리되지 않는 포인터 NativeOverlapped 를 반환합니다.

public:
 System::Threading::NativeOverlapped* UnsafeAllocateNativeOverlapped(System::Threading::IOCompletionCallback ^ callback, System::Object ^ state, System::Object ^ pinData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* UnsafeAllocateNativeOverlapped (System.Threading.IOCompletionCallback callback, object? state, object? pinData);
[<System.CLSCompliant(false)>]
member this.UnsafeAllocateNativeOverlapped : System.Threading.IOCompletionCallback * obj * obj -> nativeptr<System.Threading.NativeOverlapped>

매개 변수

callback
IOCompletionCallback

비동기 I/O 작업이 완료될 때 호출하는 콜백 메서드를 나타내는 IOCompletionCallback 대리자입니다.

state
Object

이를 다른 NativeOverlapped 인스턴스와 구분하는 NativeOverlapped 사용자 제공 개체입니다. null일 수 있습니다.

pinData
Object

작업에 대한 입력 또는 출력 버퍼를 나타내는 개체나 개체 배열입니다. 각 개체는 버퍼(예: 바이트 배열)를 나타냅니다. null일 수 있습니다.

반환

NativeOverlapped*

NativeOverlapped 구조체에 대한 관리되지 않는 포인터입니다.

특성

예외

callback이(가) null인 경우

이 메서드는 ThreadPoolBoundHandle이 삭제된 후 호출되었습니다.

설명

이 메서드에서 반환된 관리되지 않는 포인터는 겹치는 I/O 작업에서 운영 체제에 전달할 수 있습니다. 구조체는 NativeOverlapped 호출될 때까지 FreeNativeOverlapped(NativeOverlapped*) 실제 메모리에서 고정됩니다.

지정된 pinData 버퍼 또는 버퍼는 비동기 I/O를 수행하는 관리되지 않는 운영 체제 함수에 전달된 버퍼와 동일해야 합니다.

ExecutionContext 는 콜백 호출로 전달되지 않습니다.

참고

지정된 pinData 버퍼는 I/O 작업 기간 동안 고정됩니다.

적용 대상