Udostępnij za pośrednictwem


Stream.ReadAtLeastAsync Metoda

Definicja

Asynchronicznie odczytuje co najmniej minimalną liczbę bajtów z bieżącego strumienia, zwiększa pozycję w strumieniu przez liczbę odczytanych bajtów i monitoruje żądania anulowania.

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)

Parametry

buffer
Memory<Byte>

Region pamięci do zapisywania danych.

minimumBytes
Int32

Minimalna liczba bajtów do odczytu do buforu.

throwOnEndOfStream
Boolean

true aby zgłosić wyjątek, jeśli osiągnięto koniec strumienia przed odczytem minimumBytes bajtów; false aby zwrócić mniej niż minimumBytes po osiągnięciu końca strumienia. Wartość domyślna to true.

cancellationToken
CancellationToken

Token do monitorowania żądań anulowania.

Zwraca

Zadanie reprezentujące asynchroniczną operację odczytu. Wartość jej Result właściwości zawiera całkowitą liczbę bajtów odczytanych do buforu. Gwarantuje to, że wartość jest większa niż lub równa minimumBytes , gdy throwOnEndOfStream parametr ma truewartość . Będzie to mniejsze niż minimumBytes po osiągnięciu końca strumienia i throwOnEndOfStream wartości .false Może to być mniejsza niż liczba bajtów przydzielonych w buforze, jeśli liczba bajtów nie jest obecnie dostępna.

Wyjątki

minimumBytes jest ujemna lub jest większa niż długość buffer.

throwOnEndOfStream element jest true i osiągnięto koniec strumienia przed odczytaniem minimumBytes bajtów danych.

Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.

Uwagi

Gdy minimumBytes wartość to 0 (zero), ta operacja odczytu zostanie ukończona bez oczekiwania na dostępne dane w strumieniu.

Dotyczy