DeflateStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
開始非同步的寫入作業。 (請考慮使用 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時擲回例外狀況。