PreAllocatedOverlapped.UnsafeCreate 方法

定义

重要

此 API 不符合 CLS。

初始化 类的新实例 PreAllocatedOverlapped ,指定在完成每个异步 I/O 操作时调用的委托、提供上下文的用户提供的对象以及充当缓冲区的托管对象。

public:
 static System::Threading::PreAllocatedOverlapped ^ UnsafeCreate(System::Threading::IOCompletionCallback ^ callback, System::Object ^ state, System::Object ^ pinData);
[System.CLSCompliant(false)]
public static System.Threading.PreAllocatedOverlapped UnsafeCreate (System.Threading.IOCompletionCallback callback, object? state, object? pinData);
[<System.CLSCompliant(false)>]
static member UnsafeCreate : System.Threading.IOCompletionCallback * obj * obj -> System.Threading.PreAllocatedOverlapped
Public Shared Function UnsafeCreate (callback As IOCompletionCallback, state As Object, pinData As Object) As PreAllocatedOverlapped

参数

callback
IOCompletionCallback

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

state
Object

一个用户提供的对象,它将从此对象生成的实例与其他NativeOverlapped实例区分开NativeOverlapped来。 可以为 null

pinData
Object

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

返回

新的 PreAllocatedOverlapped 实例。

属性

例外

callbacknull

此释放 ThreadPoolBoundHandle 后调用此方法。

注解

可以将新 PreAllocatedOverlapped 实例传递到 AllocateNativeOverlapped(PreAllocatedOverlapped),以生成一个 NativeOverlapped 实例,该实例可以通过重叠的 I/O 操作传递给操作系统。 单个 PreAllocatedOverlapped 实例一次只能用于单个本机 I/O 操作。 但是,实例中 PreAllocatedOverlapped 存储的状态可以重复用于后续本机操作。 ExecutionContext 不会流向回调的调用。

注意

pinData 指定的缓冲区将固定,直到 Dispose() 调用。

适用于