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 по-прежнему доступен в текущих версиях для поддержки устаревшего кода, однако вы можете проще реализовать асинхронные операции ввода-вывода с помощью новых асинхронных методов. Дополнительные сведения см. в разделе Асинхронный файловый ввод-вывод.
Передайте объект, IAsyncResult возвращенный текущим методом, в , EndWrite чтобы обеспечить надлежащее завершение записи и освобождение ресурсов. Это можно сделать с помощью того же кода, который вызвал BeginWrite , или в обратном вызове, переданном в BeginWrite. Если во время асинхронной операции записи возникает ошибка, исключение не будет создано до тех пор, пока EndWrite не будет вызван объект с IAsyncResult возвращаемым этим методом.
Если поток доступен для записи, запись в конце потока расширяет поток.
Текущая позиция в потоке обновляется при выполнении асинхронной операции чтения или записи, а не по завершении операции ввода-вывода. Несколько одновременных асинхронных запросов делают порядок завершения запроса неопределенным.
Используйте свойство , CanWrite чтобы определить, поддерживает ли текущий DeflateStream объект запись.
Если поток закрыт или вы передаете недопустимый аргумент, исключения создаются немедленно из BeginWrite. Ошибки, возникающие во время асинхронного запроса на запись, такие как сбой диска во время запроса ввода-вывода, происходят в потоке пула потоков и вызывают исключения при вызове EndWrite.