Compartilhar via


Stream.ReadAtLeastAsync Método

Definição

Lê de forma assíncrona pelo menos um número mínimo de bytes do fluxo atual, avança a posição dentro do fluxo pelo número de bytes lidos e monitora solicitações de cancelamento.

public System.Threading.Tasks.ValueTask<int> ReadAtLeastAsync (Memory<byte> buffer, int minimumBytes, bool throwOnEndOfStream = true, System.Threading.CancellationToken cancellationToken = default);
member this.ReadAtLeastAsync : Memory<byte> * int * bool * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReadAtLeastAsync (buffer As Memory(Of Byte), minimumBytes As Integer, Optional throwOnEndOfStream As Boolean = true, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parâmetros

buffer
Memory<Byte>

A região da memória na qual gravar os dados.

minimumBytes
Int32

O número mínimo de bytes a serem lidos no buffer.

throwOnEndOfStream
Boolean

true para gerar uma exceção se o final do fluxo for atingido antes da leitura minimumBytes de bytes; false para retornar menos do que minimumBytes quando o final do fluxo for atingido. O padrão é true.

cancellationToken
CancellationToken

O token a se monitorar para solicitações de cancelamento.

Retornos

Uma tarefa que representa a operação de leitura assíncrona. O valor de sua propriedade Result contém o número total de bytes lidos no buffer. É garantido que isso seja maior ou igual a minimumBytes quando throwOnEndOfStream é true. Isso será menor do que minimumBytes quando o final do fluxo for atingido e throwOnEndOfStream for false. Isso pode ser menor do que o número de bytes alocados no buffer se muitos bytes não estiverem disponíveis no momento.

Exceções

minimumBytes é negativo ou é maior que o comprimento de buffer.

throwOnEndOfStream é true e o final do fluxo é atingido antes de ler minimumBytes bytes de dados.

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

Comentários

Quando minimumBytes for 0 (zero), essa operação de leitura será concluída sem aguardar os dados disponíveis no fluxo.

Aplica-se a