Stream.EndRead(IAsyncResult) Метод

Определение

Ожидает завершения отложенного асинхронного чтения.Waits for the pending asynchronous read to complete. (Рекомендуется использовать ReadAsync(Byte[], Int32, Int32).)(Consider using ReadAsync(Byte[], Int32, Int32) instead.)

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

Ссылка на отложенный асинхронный запрос, который необходимо завершить.The reference to the pending asynchronous request to finish.

Возвращаемое значение

Количество байтов, считанных из потока, от нуля (0) до количества запрошенных байтов.The number of bytes read from the stream, between zero (0) and the number of bytes you requested. Потоки возвращают нуль (0) только в конце. В противном случае они должны блокироваться до тех пор, пока доступен хотя бы один байт.Streams return zero (0) only at the end of the stream, otherwise, they should block until at least one byte is available.

Исключения

Параметр asyncResult равен null.asyncResult is null.

Обработчик отложенной операции считывания не доступен.A handle to the pending read operation is not available.

-или--or-

Ожидающая операция не поддерживает чтение.The pending operation does not support reading.

asyncResult не происходит из метода BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) в текущем потоке.asyncResult did not originate from a BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) method on the current stream.

Поток закрыт, или произошла внутренняя ошибка.The stream is closed or an internal error has occurred.

Комментарии

В платформе .NET Framework 4 и более ранних версий для реализации операций асинхронного ввода-вывода необходимо использовать такие методы, как BeginRead и EndRead .In the .NET Framework 4 and earlier versions, you have to use methods such as BeginRead and EndRead to implement asynchronous I/O operations. Эти методы по-прежнему доступны в .NET Framework 4.5.NET Framework 4.5 для поддержки устаревшего кода; Однако новые асинхронные методы, такие как ReadAsync, WriteAsync, CopyToAsyncи FlushAsync, упрощают реализацию асинхронных операций ввода-вывода.These methods are still available in the .NET Framework 4.5.NET Framework 4.5 to support legacy code; however, the new async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you implement asynchronous I/O operations more easily.

Вызовите EndRead, чтобы определить, сколько байтов было считано из потока.Call EndRead to determine how many bytes were read from the stream.

EndRead можно вызывать один раз для каждого IAsyncResult из BeginRead.EndRead can be called once on every IAsyncResult from BeginRead.

Этот метод блокируется до завершения операции ввода-вывода.This method blocks until the I/O operation has completed.

Применяется к

Дополнительно