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, WriteAsync, CopyToAsyncи FlushAsync, упрощают реализацию асинхронных операций ввода-вывода.
Вызовите EndRead
, чтобы определить, сколько байтов было считано из потока.
EndRead
может вызываться один раз для каждого IAsyncResult из .BeginRead
Этот метод блокируется до завершения операции ввода-вывода.