NetworkStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
NetworkStream에서 비동기 읽기를 시작합니다.
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
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 size, 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 size, AsyncCallback callback, object state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
매개 변수
- buffer
- Byte[]
Byte에서 읽은 데이터를 저장하기 위한 메모리 내의 위치에 해당하는 NetworkStream 형식의 배열입니다.
- offset
- Int32
데이터를 저장하기 시작하는 buffer
내의 위치입니다.
- sizecount
- Int32
NetworkStream에서 읽을 바이트 수입니다.
- callback
- AsyncCallback
AsyncCallback가 완료될 때 실행되는 BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 대리자입니다.
- state
- Object
추가 사용자 정의 데이터가 들어 있는 개체입니다.
반환
비동기 호출을 나타내는 IAsyncResult입니다.
예외
buffer
매개 변수가 null
인 경우
offset
매개 변수가 0보다 작은 경우
또는
offset
매개 변수가 buffer
매개 변수의 길이보다 큰 경우
또는
size
가 0보다 작은 경우
또는
size
가 buffer
의 길이에서 offset
매개 변수의 값을 뺀 값보다 큰 경우
NetworkStream가 닫혔습니다.
설명
중요
이는 호환성 API입니다. 새 개발에 APM (시작/종료) 메서드를 사용하지 않는 것이 좋습니다. 대신 작업 기반 등가를 사용합니다.
를 구현하는 콜백을 AsyncCallbackBeginRead 전달하여 작업 완료에 대한 알림을 받을 수 있습니다. 기본 네트워크 스택이 동기적으로 작업을 완료하는 경우 콜백은 를 호출 BeginRead하는 동안 인라인으로 실행됩니다. 이 경우 반환 IAsyncResult 된 의 CompletedSynchronously 속성이 로 설정 true
되어 메서드가 동기적으로 완료되었음을 나타냅니다. 사용 하 여는 의 AsyncStateIAsyncResult 속성을 메서드에 전달 된 상태 개체를 BeginRead 가져옵니다.
메서드를 BeginRead 호출 EndRead 하여 작업을 완료해야 합니다. 일반적으로 메서드는 제공된 대리자에서 호출됩니다 AsyncCallback . EndRead 는 작업이 완료될 때까지 호출 스레드를 차단합니다.
작업은 매개 변수에 지정된 size
바이트 수까지 사용 가능한 만큼의 데이터를 읽습니다.
참고
를 수신하는 IOException경우 속성을 검사 InnerException 속성이 로 SocketException인해 발생했는지 확인합니다. 그렇다면 속성을 사용하여 ErrorCode 특정 오류 코드를 가져옵니다.
읽기 및 쓰기 작업은 동기화할 필요 없이 클래스의 NetworkStream instance 동시에 수행할 수 있습니다. 쓰기 작업에 고유한 스레드가 하나 있고 읽기 작업에 고유한 스레드가 하나 있는 한 읽기 및 쓰기 스레드 간에 교차 간섭이 없고 동기화가 필요하지 않습니다.
적용 대상
추가 정보
.NET