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(byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
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

参数

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的回调中执行此操作。 如果在异步写入操作期间发生错误,则在使用此方法返回的调用EndWrite之前IAsyncResult,不会引发异常。

如果流是可写的,则流末尾的写入将扩展流。

发出异步读取或写入操作时,流中的当前位置将更新,而不是在 I/O 操作完成时更新。 多个同时异步请求呈现请求完成顺序不确定。

使用 CanWrite 属性确定当前 DeflateStream 对象是否支持写入。

如果流已关闭或传递无效参数,则会立即从中 BeginWrite引发异常。 异步写入请求期间发生的错误(例如 I/O 请求期间的磁盘故障)发生在线程池线程上,并在调用 EndWrite时引发异常。

适用于