Поделиться через


PipeStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Метод

Определение

Начинает операцию асинхронного чтения.

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 count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
[System.Security.SecurityCritical]
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
[<System.Security.SecurityCritical>]
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

buffer
Byte[]

Буфер, в который необходимо считать данные.

offset
Int32

Смещение в buffer (в байтах), с которого начинается чтение.

count
Int32

Максимальное число байтов, предназначенных для чтения.

callback
AsyncCallback

Метод, вызываемый после завершения операции асинхронного чтения.

state
Object

Предоставляемый пользователем объект, являющийся отличительным признаком данного конкретного запроса на асинхронное чтение от других запросов.

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

Объект IAsyncResult, который ссылается на асинхронное чтение.

Атрибуты

Исключения

buffer имеет значение null.

Значение параметраoffset меньше 0.

-или-

Значение параметраcount меньше 0.

count больше, чем число байтов, доступных в buffer.

Канал закрыт.

Этот канал не поддерживает операции чтения.

Канал отключен, ожидает подключения, или дескриптор не был задан.

Канал разорван, или возникла другая ошибка ввода-вывода.

Комментарии

Передайте возвращенный IAsyncResult объект методу EndRead , чтобы определить, сколько байтов было прочитано, и освободить ресурсы операционной системы, используемые для чтения. EndRead должен вызываться один раз для каждого вызова BeginRead. Это можно сделать либо в том же коде, который вызвал BeginRead , либо в обратном вызове, передаваемом в BeginRead.

Используйте свойство , CanRead чтобы определить, поддерживает ли текущий PipeStream объект операции чтения.

Если канал закрыт или в передается BeginReadнедопустимый аргумент , соответствующие исключения возникают немедленно. Ошибки, возникающие во время асинхронного запроса на чтение, происходят в потоке пула потоков, выполняющего запрос. Исключения возникают, когда код вызывает EndRead метод .

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