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(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时引发异常。