Stream.EndRead(IAsyncResult) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Ожидает завершения ожидающего асинхронного чтения. (Рекомендуется использовать ReadAsync(Byte[], Int32, Int32) вместо этого.)
public:
virtual int EndRead(IAsyncResult ^ asyncResult);
public virtual int EndRead(IAsyncResult asyncResult);
abstract member EndRead : IAsyncResult -> int
override this.EndRead : IAsyncResult -> int
Public Overridable Function EndRead (asyncResult As IAsyncResult) As Integer
Параметры
- asyncResult
- IAsyncResult
Ссылка на ожидающий асинхронный запрос для завершения.
Возвращаемое значение
Число байтов, считываемых из потока, от нуля (0) до количества запрошенных байтов. ReadAsync возвращает ноль (0) только в том случае, если запрашивались ноль байтов или если больше байтов не будет доступно, так как он находится в конце потока; в противном случае операции чтения не завершаются до тех пор, пока не будет доступен хотя бы один байт. Если запрашиваются ноль байтов, операции чтения могут завершиться немедленно или не завершиться до тех пор, пока не будет доступен хотя бы один байт (но без использования данных).
Исключения
asyncResult равно null.
Дескриптор ожидающей операции чтения недоступен.
–или–
Ожидающая операция не поддерживает чтение.
asyncResult Не произошло из BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) метода в текущем потоке.
Поток закрыт или произошла внутренняя ошибка.
Комментарии
В .NET Framework 4 и более ранних версиях необходимо использовать такие методы, как BeginRead и EndRead реализовать асинхронные операции ввода-вывода. Эти методы по-прежнему доступны в .NET Framework 4.5 для поддержки устаревшего кода; однако новые асинхронные методы, такие как ReadAsync, WriteAsyncCopyToAsyncиFlushAsync, помогают реализовать асинхронные операции ввода-вывода.
Вызов EndRead , чтобы определить, сколько байтов было считывано из потока.
EndRead можно вызывать один раз в каждом IAsyncResult из BeginRead.
Этот метод блокирует до завершения операции ввода-вывода.