NetworkStream.ReadAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| ReadAsync(Memory<Byte>, CancellationToken) |
Lê os dados e os NetworkStream armazena em um intervalo de memória de bytes como uma operação assíncrona. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Lê os dados e os NetworkStream armazena em um intervalo especificado de uma matriz de bytes como uma operação assíncrona. |
ReadAsync(Memory<Byte>, CancellationToken)
Lê os dados e os NetworkStream armazena em um intervalo de memória de bytes como uma operação assíncrona.
public override System.Threading.Tasks.ValueTask<int> ReadAsync(Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parâmetros
- cancellationToken
- CancellationToken
O token a ser monitorado para solicitações de cancelamento.
Retornos
Um ValueTask<TResult> que representa a operação de leitura assíncrona. O valor de sua Result propriedade contém o número total de bytes lidos buffer entre zero (0) e o número de bytes solicitados. O valor do resultado será zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par executou um desligamento normal. Se zero bytes forem solicitados, as operações de leitura poderão ser concluídas imediatamente ou não serão concluídas até que pelo menos um byte esteja disponível (mas sem consumir dados).
Exceções
O NetworkStream não dá suporte à leitura.
O NetworkStream está fechado.
O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.
Comentários
Esse método lê o máximo de dados que está disponível buffer e retorna o número de bytes lidos com êxito.
Note
Verifique se o NetworkStream valor é legível chamando a CanRead propriedade. Se você tentar ler de um NetworkStream que não é legível, você receberá um InvalidOperationException.
Note
Se você receber um IOException, verifique a InnerException propriedade para determinar se ela foi causada por um SocketException. Nesse caso, use a propriedade ErrorCode para obter o código de erro específico e consulte o código de erro da API Windows Sockets versão 2 documentação para obter uma descrição detalhada do erro.
Aplica-se a
ReadAsync(Byte[], Int32, Int32, CancellationToken)
Lê os dados e os NetworkStream armazena em um intervalo especificado de uma matriz de bytes como uma operação assíncrona.
public:
override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int size, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int size, System.Threading.CancellationToken cancellationToken);
abstract member ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, size As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Parâmetros
- buffer
- Byte[]
O buffer no qual gravar os dados.
- offset
- Int32
O local no buffer qual começar a armazenar os dados.
- countsize
- Int32
O número de bytes a serem lidos da NetworkStream.
- cancellationToken
- CancellationToken
O token a ser monitorado para solicitações de cancelamento.
Retornos
Uma tarefa que representa a operação de leitura assíncrona. O valor de sua Result propriedade contém o número total de bytes lidos buffer entre zero (0) e o número de bytes solicitados. O valor do resultado será zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par executou um desligamento normal. Se zero bytes forem solicitados, as operações de leitura poderão ser concluídas imediatamente ou não serão concluídas até que pelo menos um byte esteja disponível (mas sem consumir dados).
Exceções
O NetworkStream não dá suporte à leitura.
O NetworkStream está fechado.
O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.
Comentários
Esse método lê os dados buffer e retorna o número de bytes lidos com êxito. A ReadAsync operação lê o máximo de dados que estiver disponível, até o número de bytes especificados count pelo parâmetro.
Note
Verifique se o NetworkStream valor é legível chamando a CanRead propriedade. Se você tentar ler de um NetworkStream que não é legível, você receberá um InvalidOperationException.
Note
Se você receber um IOException, verifique a InnerException propriedade para determinar se ela foi causada por um SocketException. Nesse caso, use a propriedade ErrorCode para obter o código de erro específico e consulte o código de erro da API Windows Sockets versão 2 documentação para obter uma descrição detalhada do erro.
Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas por Read(Byte[], Int32, Int32).