CryptoStream.ReadAsync(Byte[], Int32, Int32, CancellationToken) Methode

Definitie

Hiermee wordt een reeks bytes van de huidige stroom asynchroon gelezen, wordt de positie binnen de stream verplaatst door het aantal gelezen bytes en worden annuleringsaanvragen gecontroleerd.

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>
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>
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)

Parameters

buffer
Byte[]

De buffer om de gegevens naar te schrijven.

offset
Int32

De byte-offset buffer waarin gegevens uit de stream moeten worden geschreven.

count
Int32

Het maximum aantal bytes dat moet worden gelezen.

cancellationToken
CancellationToken

Het token dat moet worden gecontroleerd op annuleringsaanvragen. De standaardwaarde is None.

Retouren

Een taak die de asynchrone leesbewerking vertegenwoordigt. De waarde van de parameter van het taakobject TResult bevat het totale aantal bytes dat in de buffer is gelezen. Het resultaat kan kleiner zijn dan het aantal aangevraagde bytes als het aantal beschikbare bytes kleiner is dan het aangevraagde getal, of het kan 0 (nul) zijn als het einde van de stream is bereikt.

Uitzonderingen

buffer is null.

offset of count is negatief.

De som van offset en count is groter dan de bufferlengte.

De stream biedt geen ondersteuning voor lezen.

De stroom is verwijderd.

De stream wordt momenteel gebruikt door een eerdere leesbewerking.

Het annuleringstoken is geannuleerd. Deze uitzondering wordt opgeslagen in de geretourneerde taak.

Opmerkingen

Important

Vanaf .NET 6 kan deze methode mogelijk niet zoveel bytes lezen als is aangevraagd. Zie Gedeeltelijke en nul-byte-leesbewerkingen in DeflateStream, GZipStream en CryptoStream voor meer informatie.

U moet uw aanroep vooraf laten gaan naar ReadAsync met de operator await (C#) of Await (Visual Basic) om de uitvoering van de methode te onderbreken totdat de taak is voltooid. Zie Asynchrone programmering (C#) of Asynchrone programmering met Async en Await (Visual Basic) voor meer informatie.

Als de bewerking wordt geannuleerd voordat deze is voltooid, bevat de geretourneerde taak de Canceled waarde voor de Status eigenschap.

Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door Read(Byte[], Int32, Int32)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.

Van toepassing op

Zie ook