BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Начинает операцию асинхронного чтения. (Рекомендуется использовать ReadAsync(Byte[], Int32, Int32, CancellationToken).)
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object? state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- buffer
- Byte[]
Буфер, в который необходимо считать данные.
- offset
- Int32
Смещение байтов в буфере buffer
, с которого начинается запись данных, считанных из потока.
- count
- Int32
Максимальное число байтов, предназначенных для чтения.
- callback
- AsyncCallback
Дополнительный асинхронный обратный вызов по завершении чтения.
- state
- Object
Предоставляемый пользователем объект, являющийся отличительным признаком данного конкретного запроса на асинхронное чтение от других запросов.
Возвращаемое значение
Объект, представляющий асинхронную операцию чтения, которая может все еще быть отложена.
Исключения
buffer
имеет значение null
.
offset
или count
является отрицательным значением.
Предпринята попытка асинхронного чтения за пределами потока.
Длина буфера минус offset
меньше count
.
Текущий поток не поддерживает операцию чтения.
Комментарии
В платформа .NET Framework 4 и более ранних версиях для реализации асинхронных операций с файлами необходимо использовать такие методы, как BeginRead и EndRead . Эти методы по-прежнему доступны в платформа .NET Framework 4.5 для поддержки устаревшего кода. Однако новые асинхронные методы, такие как ReadAsync, WriteAsyncи FlushAsync, упрощают асинхронные операции с файлами.
EndWrite для каждого вызова BeginReadдолжен вызываться ровно один раз. Сбой завершения процесса чтения перед началом другого чтения может привести к нежелательному поведению, такому как взаимоблокировка.
Примечание
Используйте свойство , CanRead чтобы определить, поддерживает ли текущий экземпляр чтение.
EndRead Необходимо вызвать с помощью этого IAsyncResult метода, чтобы узнать, сколько байтов было прочитано.