BufferedStream.ReadAsync Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
ReadAsync(Memory<Byte>, CancellationToken) |
Asynchronicznie odczytuje sekwencję bajtów z bieżącego buforowanego strumienia i rozwija pozycję w buforowanych strumieniach według liczby odczytanych bajtów. |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia, rozwija pozycję w strumieniu według liczby odczytanych bajtów i monitoruje żądania anulowania. |
ReadAsync(Memory<Byte>, CancellationToken)
- Źródło:
- BufferedStream.cs
- Źródło:
- BufferedStream.cs
- Źródło:
- BufferedStream.cs
Asynchronicznie odczytuje sekwencję bajtów z bieżącego buforowanego strumienia i rozwija pozycję w buforowanych strumieniach według liczby odczytanych bajtów.
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
- cancellationToken
- CancellationToken
Token do monitorowania żądań anulowania. Wartość domyślna to None.
Zwraca
Zadanie reprezentujące operację odczytu asynchronicznego. Wartość właściwości Result zawiera całkowitą liczbę bajtów odczytanych do buforu. 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.
Wyjątki
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.
Uwagi
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 aplikacji ze sklepu Windows 8.x lub aplikacji klasycznej, w której czasochłonna operacja strumienia może zablokować wątek interfejsu użytkownika i sprawić, że aplikacja będzie 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 Status .
Dotyczy
ReadAsync(Byte[], Int32, Int32, CancellationToken)
- Źródło:
- BufferedStream.cs
- Źródło:
- BufferedStream.cs
- Źródło:
- BufferedStream.cs
Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia, rozwija pozycję w strumieniu według liczby odczytanych bajtów i monitoruje żądania anulowania.
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[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Parametry
- buffer
- Byte[]
Bufor do zapisania danych.
- offset
- Int32
Przesunięcie bajtów, w buffer
którym rozpocznie się zapisywanie danych ze strumienia.
- count
- Int32
Maksymalna liczba bajtów do odczytania.
- cancellationToken
- CancellationToken
Token do monitorowania żądań anulowania.
Zwraca
Zadanie reprezentujące operację odczytu asynchronicznego. Wartość parametru TResult
zawiera całkowitą liczbę bajtów odczytanych do buforu. 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 być równa 0 (zero), jeśli koniec strumienia został osiągnięty.
Wyjątki
buffer
to null
.
offset
lub count
jest ujemny.
Suma offset
wartości i count
jest większa niż długość buforu.
Strumień nie obsługuje odczytu.
Strumień został usunięty.
Strumień jest obecnie używany przez poprzednią operację odczytu.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.
Uwagi
Token anulowania można utworzyć, tworząc wystąpienie CancellationTokenSource klasy i przekazując Token właściwość jako cancellationToken
parametr.
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ę .