DeflateStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) 方法

定義

開始非同步的寫入作業。 (請考慮使用 WriteAsync(Byte[], Int32, Int32) 方法替代。)

public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginWrite (byte[] array, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite (byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

參數

arraybuffer
Byte[]

寫入資料的來源緩衝區。

offset
Int32

要開始寫入的位元組位移。

count
Int32

寫入的最大位元組數。

asyncCallback
AsyncCallback

選擇性的非同步回呼,會在寫入作業完成時呼叫。

asyncState
Object

使用者所提供的物件,其可以從其他要求中區分出這個特定非同步寫入的要求。

傳回

表示可能仍為暫止狀態的非同步寫入作業之物件。

例外狀況

嘗試非同步寫入的方法超越資料流結尾,或發生了磁碟錯誤。

一或多個引數無效。

關閉資料流後呼叫了方法。

目前的 DeflateStream 實作不支援寫入作業。

無法執行寫入作業,因為資料流已關閉。

備註

從 .NET Framework 4.5 開始,您可以使用 方法來執行異步寫入作業WriteAsync。 此方法 BeginWrite 仍可在目前版本中使用,以支援舊版程式代碼;不過,您可以使用新的異步方法,更輕鬆地實作異步 I/O 作業。 如需詳細資訊,請參閱非同步檔案 I/O

IAsyncResult傳遞目前 方法傳回的物件,EndWrite以確保寫入完成並適當釋放資源。 您可以使用呼叫 BeginWrite 的相同程式代碼,或在傳遞至 BeginWrite的回呼中執行此動作。 如果在異步寫入作業期間發生錯誤,除非使用此方法傳回的呼叫IAsyncResult,否則不會擲EndWrite回例外狀況。

如果數據流是可寫入的,則數據流結尾的寫入會展開數據流。

當您發出異步讀取或寫入作業時,數據流中的目前位置會更新,而不是 I/O 作業完成時。 多個同時異步要求會轉譯要求完成順序不確定。

CanWrite使用屬性來判斷目前DeflateStream物件是否支援寫入。

如果數據流已關閉,或您傳遞無效的自變數,則會立即從 BeginWrite擲回例外狀況。 在異步寫入要求期間發生的錯誤,例如 I/O 要求期間的磁碟失敗,會在線程集區線程上發生,並在呼叫 EndWrite時擲回例外狀況。

適用於