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相同代码。 如果在异步写入操作期间发生错误,则在调用此方法返回的 之前EndWriteIAsyncResult不会引发异常。
如果流是可写的,在流末尾写入会扩展流。
发出异步读取或写入操作时,而不是 I/O 操作完成时,流中的当前位置会更新。 多个同步异步请求使请求完成顺序不确定。
CanWrite使用 属性确定当前DeflateStream对象是否支持写入。
如果流关闭或传递了无效参数,则会立即从 BeginWrite引发异常。 异步写入请求期间发生的错误(例如 I/O 请求期间的磁盘故障)发生在线程池线程上,并在调用 EndWrite时引发异常。