ThreadPoolBoundHandle.UnsafeAllocateNativeOverlapped 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重要
此 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 结构的非托管指针。
- 属性
例外
callback
为 null
。
此释放 ThreadPoolBoundHandle 后调用此方法。
注解
此方法返回的非托管指针可以通过重叠的 I/O 操作传递到操作系统。 结构 NativeOverlapped 在物理内存中固定,直到 FreeNativeOverlapped(NativeOverlapped*) 调用为止。
指定的 pinData
缓冲区或缓冲区必须与传递给执行异步 I/O 的非托管操作系统函数的缓冲区相同。
ExecutionContext 不会流向回调的调用。
备注
在 I/O 操作期间固定指定的 pinData
缓冲区。