ThreadPoolBoundHandle.UnsafeAllocateNativeOverlapped 方法

定义

重要

此 API 不符合 CLS。

返回指向结构的非托管指针 NativeOverlapped ,指定异步 I/O 操作完成后调用的委托、提供上下文的用户提供的对象以及用作缓冲区的托管对象。

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

一个 IOCompletionCallback 委托,表示在异步 I/O 操作完成时调用的回调方法。

state
Object

用户提供的对象,用于将此 NativeOverlapped 对象与其他 NativeOverlapped 实例区分开来。 可以为 null

pinData
Object

对象或对象的数组,表示用于操作的输入或输出缓冲区。 每个对象都表示一个缓冲区,例如字节数组。 可以为 null

返回

NativeOverlapped*

一个指向 NativeOverlapped 结构的非托管指针。

属性

例外

callbacknull

此释放 ThreadPoolBoundHandle 后调用此方法。

注解

此方法返回的非托管指针可以通过重叠的 I/O 操作传递到操作系统。 结构 NativeOverlapped 在物理内存中固定,直到 FreeNativeOverlapped(NativeOverlapped*) 调用为止。

指定的 pinData 缓冲区或缓冲区必须与传递给执行异步 I/O 的非托管操作系统函数的缓冲区相同。

ExecutionContext 不会流向回调的调用。

备注

在 I/O 操作期间固定指定的 pinData 缓冲区。

适用于