다음을 통해 공유


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바이트가 요청되었거나 스트림 끝에 있기 때문에 더 이상 바이트를 사용할 수 없는 경우에만 0을 반환합니다. 그렇지 않으면 하나 이상의 바이트를 사용할 수 있게 될 때까지 읽기 작업이 완료되지 않습니다. 0바이트가 요청되면 읽기 작업이 즉시 완료되거나 하나 이상의 바이트를 사용할 수 있을 때까지 완료되지 않을 수 있습니다(데이터를 사용하지 않고).

예외

asyncResult이(가) null인 경우

보류 중인 읽기 작업에 대한 핸들을 사용할 수 없는 경우

또는

보류 중인 작업이 읽기를 지원하지 않는 경우

asyncResult가 현재 스트림의 BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 메서드에서 시작되지 않았습니다.

스트림이 닫혔거나 내부 오류가 발생했습니다.

설명

.NET Framework 4 및 이전 버전에서 비동기 I/O 작업을 구현하려면 BeginReadEndRead와 같은 메서드를 사용해야 합니다. 이러한 메서드는 레거시 코드를 지원하기 위해 .NET Framework 4.5에서 계속 사용할 수 있지만 , , WriteAsyncCopyToAsync및 와 FlushAsync같은 ReadAsync새로운 비동기 메서드는 비동기 I/O 작업을 보다 쉽게 구현하는 데 도움이 됩니다.

를 호출 EndRead 하여 스트림에서 읽은 바이트 수를 확인합니다.

EndRead는 에서 BeginRead모든 IAsyncResult 에서 한 번 호출할 수 있습니다.

이 메서드는 I/O 작업이 완료될 때까지 차단됩니다.

적용 대상

추가 정보