Overlapped.Pack 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將目前的實例打包成一個 NativeOverlapped 結構。
多載
| 名稱 | Description |
|---|---|
| Pack(IOCompletionCallback) |
已淘汰.
已淘汰.
已淘汰.
將目前實例打包成結構 NativeOverlapped ,指定非同步 I/O 操作完成後要呼叫的代理。 |
| Pack(IOCompletionCallback, Object) |
將目前實例打包成結構 NativeOverlapped ,指定一個代理(delegate),當非同步 I/O 操作完成時會被呼叫,並指定一個作為緩衝區的受管理物件。 |
Pack(IOCompletionCallback)
警告
This overload is not safe and has been deprecated. Use Pack(IOCompletionCallback?, object?) instead.
警告
This method is not safe. Use Pack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202
警告
This method is not safe. Use Pack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202
重要
此 API 不符合 CLS 規範。
將目前實例打包成結構 NativeOverlapped ,指定非同步 I/O 操作完成後要呼叫的代理。
public:
System::Threading::NativeOverlapped* Pack(System::Threading::IOCompletionCallback ^ iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This overload is not safe and has been deprecated. Use Pack(IOCompletionCallback?, object?) instead.")]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback? iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe. Use Pack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback? iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe. Use Pack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe. Use Pack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
[System.Security.SecurityCritical]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe. Use Pack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb);
[<System.CLSCompliant(false)>]
[<System.Obsolete("This overload is not safe and has been deprecated. Use Pack(IOCompletionCallback?, object?) instead.")>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe. Use Pack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe. Use Pack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe. Use Pack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
[<System.Security.SecurityCritical>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
參數
- iocb
- IOCompletionCallback
一個 IOCompletionCallback 代理,代表非同步 I/O 操作完成時呼叫的回撥方法。
傳回
一個未 NativeOverlapped 管理的結構指標。
- 屬性
例外狀況
水流 Overlapped 已經被填滿了。
備註
此方法回傳的非管理指標可透過重疊的 I/O 操作傳遞給作業系統。 該 NativeOverlapped 結構在物理記憶體中固定,直到 Unpack 被呼叫。
Important
呼叫者負責固定緩衝區。 然而,若應用程式域被卸載,釘選緩衝區的句柄會被銷毀並釋放緩衝區,留下 I/O 操作寫入已釋放的位址。 因此,最好使用 Pack(IOCompletionCallback, Object) 方法過載,讓執行時將緩衝區釘選。
適用於
Pack(IOCompletionCallback, Object)
重要
此 API 不符合 CLS 規範。
將目前實例打包成結構 NativeOverlapped ,指定一個代理(delegate),當非同步 I/O 操作完成時會被呼叫,並指定一個作為緩衝區的受管理物件。
public:
System::Threading::NativeOverlapped* Pack(System::Threading::IOCompletionCallback ^ iocb, System::Object ^ userData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback? iocb, object? userData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb, object userData);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb, object userData);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb, object userData);
[<System.CLSCompliant(false)>]
member this.Pack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Pack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
member this.Pack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
參數
- iocb
- IOCompletionCallback
一個 IOCompletionCallback 代理,代表非同步 I/O 操作完成時呼叫的回撥方法。
- userData
- Object
一個物件或物件陣列,代表操作的輸入或輸出緩衝區。 每個物件代表一個緩衝區,例如一個位元組陣列。
傳回
一個未 NativeOverlapped 管理的結構指標。
- 屬性
例外狀況
水流 Overlapped 已經被填滿了。
備註
此方法回傳的非管理指標可透過重疊的 I/O 操作傳遞給作業系統。 該 NativeOverlapped 結構在物理記憶體中固定,直到 Unpack 被呼叫。
中 userData 指定的緩衝區必須與執行非同步輸入輸出的非管理作業系統函式相同的緩衝區。
Note
執行時會為 I userData /O 操作期間內指定的特定緩衝區或緩衝區進行針腳。 若應用程式域被卸載,執行時會將記憶體釘選,直到 I/O 操作完成。