Udostępnij za pośrednictwem


DeflateStream.ReadAsync Metoda

Definicja

Przeciążenia

ReadAsync(Memory<Byte>, CancellationToken)

Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia Deflate, zapisuje je w zakresie pamięci bajtów, rozwija pozycję w strumieniu Deflate według liczby odczytanych bajtów i monitoruje żądania anulowania.

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia Deflate, zapisuje je w tablicy bajtów, rozwija pozycję w strumieniu Deflate o liczbę odczytanych bajtów i monitoruje żądania anulowania.

ReadAsync(Memory<Byte>, CancellationToken)

Źródło:
DeflateStream.cs
Źródło:
DeflateStream.cs
Źródło:
DeflateStream.cs

Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia Deflate, zapisuje je w zakresie pamięci bajtów, rozwija pozycję w strumieniu Deflate według liczby odczytanych bajtów i monitoruje żądania anulowania.

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)

Parametry

buffer
Memory<Byte>

Region pamięci do zapisu danych.

cancellationToken
CancellationToken

Token do monitorowania żądań anulowania. Wartość domyślna to None.

Zwraca

Zadanie reprezentujące operację odczytu asynchronicznego, która opakowuje łączną liczbę bajtów odczytanych w buforze. Wartość wyniku może być mniejsza niż liczba bajtów przydzielonych w buforze, jeśli liczba bajtów jest obecnie niedostępna lub może być równa 0 (zero), jeśli osiągnięto koniec strumienia Deflate.

Wyjątki

Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.

Uwagi

Ważne

Począwszy od platformy .NET 6, ta metoda może nie odczytywać tyle bajtów, ile żądano. Aby uzyskać więcej informacji, zobacz Częściowe i zerowe bajty odczyty w deflatestream, GZipStream i CryptoStream.

Metoda ReadAsync umożliwia wykonywanie operacji we/wy intensywnie korzystających z zasobów bez blokowania głównego wątku. Ta kwestia wydajności jest szczególnie ważna w aplikacjach klasycznych, w których czasochłonna operacja strumienia może blokować wątek interfejsu użytkownika i sprawiać, że aplikacja jest wyświetlana tak, jakby nie działała. Metody asynchroniczne są używane w połączeniu ze słowami kluczowymi async i await w Visual Basic i C#.

Użyj właściwości , CanRead aby określić, czy bieżące wystąpienie obsługuje odczytywanie.

Jeśli operacja zostanie anulowana przed zakończeniem, zwrócone zadanie zawiera TaskStatus.Canceled wartość właściwości Task.Status .

Dotyczy

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Źródło:
DeflateStream.cs
Źródło:
DeflateStream.cs
Źródło:
DeflateStream.cs

Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia Deflate, zapisuje je w tablicy bajtów, rozwija pozycję w strumieniu Deflate o liczbę odczytanych bajtów i monitoruje żądania anulowania.

public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ array, int offset, int count, System::Threading::CancellationToken cancellationToken);
public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int count, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] array, int offset, int count, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
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 (array As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)

Parametry

arraybuffer
Byte[]

Bufor do zapisania danych.

offset
Int32

Przesunięcie bajtów, przy którym rozpocznie się zapisywanie danych ze strumienia Deflate.

count
Int32

Maksymalna liczba bajtów do odczytania.

cancellationToken
CancellationToken

Token do monitorowania żądań anulowania. Wartość domyślna to None.

Zwraca

Zadanie reprezentujące operację odczytu asynchronicznego, która opakowuje łączną liczbę bajtów odczytanych w buforze. Wartość wyniku może być mniejsza niż liczba bajtów żądanych, jeśli liczba obecnie dostępnych bajtów jest mniejsza niż żądana liczba lub może to być 0 (zero), jeśli osiągnięto koniec strumienia Deflate.

Wyjątki

Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.

Uwagi

Ważne

Począwszy od platformy .NET 6, ta metoda może nie odczytywać tyle bajtów, ile żądano. Aby uzyskać więcej informacji, zobacz Częściowe i zerowe bajty odczyty w deflatestream, GZipStream i CryptoStream.

Metoda ReadAsync umożliwia wykonywanie operacji we/wy intensywnie korzystających z zasobów bez blokowania głównego wątku. Ta kwestia wydajności jest szczególnie ważna w aplikacjach klasycznych, w których czasochłonna operacja strumienia może blokować wątek interfejsu użytkownika i sprawiać, że aplikacja jest wyświetlana tak, jakby nie działała. Metody asynchroniczne są używane w połączeniu ze słowami kluczowymi async i await w Visual Basic i C#.

Użyj właściwości , CanRead aby określić, czy bieżące wystąpienie obsługuje odczytywanie.

Jeśli operacja zostanie anulowana przed zakończeniem, zwrócone zadanie zawiera TaskStatus.Canceled wartość właściwości Task.Status .

Ta metoda przechowuje w zadaniu wszystkie wyjątki inne niż użycie, które mogą zgłaszać synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwróconym zadaniu, ten wyjątek zostanie zgłoszony po oczekiwaniu na zadanie. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. Aby uzyskać informacje o przechowywanych wyjątkach, zobacz wyjątki zgłaszane przez Read(Byte[], Int32, Int32)usługę .

Dotyczy