PreAllocatedOverlapped.UnsafeCreate 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
重要
此 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 實例。
- 屬性
例外狀況
callback 是 null。
此方法在處理 ThreadPoolBoundHandle 後被命名。
備註
PreAllocatedOverlapped新實例可以傳遞給 AllocateNativeOverlapped(PreAllocatedOverlapped),產生NativeOverlapped一個實例,該實例能透過重疊的 I/O 操作傳給作業系統。 PreAllocatedOverlapped單一實例一次只能用於單一原生 I/O 操作。 然而,實例中儲存 PreAllocatedOverlapped 的狀態可以重複用於後續的原生操作。 ExecutionContext 不會被流向呼叫回調時。
Note
中 pinData 指定的緩衝區會被釘選,直到 Dispose() 被呼叫為止。