StringReader.ReadAsync Methode

Definitie

Overloads

Name Description
ReadAsync(Memory<Char>, CancellationToken)

Asynchroon worden alle tekens uit de invoertekenreeks gelezen, beginnend bij de huidige positie en wordt de huidige positie naar het einde van de invoertekenreeks doorgegaan.

ReadAsync(Char[], Int32, Int32)

Leest een opgegeven maximum aantal tekens uit de huidige tekenreeks asynchroon en schrijft de gegevens naar een buffer, beginnend bij de opgegeven index.

ReadAsync(Memory<Char>, CancellationToken)

Asynchroon worden alle tekens uit de invoertekenreeks gelezen, beginnend bij de huidige positie en wordt de huidige positie naar het einde van de invoertekenreeks doorgegaan.

public override System.Threading.Tasks.ValueTask<int> ReadAsync(Memory<char> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<char> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Char), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parameters

buffer
Memory<Char>

Wanneer deze methode wordt geretourneerd, bevat deze tekens die uit de huidige bron 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 TResult parameter bevat het totale aantal tekens dat in de buffer wordt gelezen.

Uitzonderingen

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

Van toepassing op

ReadAsync(Char[], Int32, Int32)

Leest een opgegeven maximum aantal tekens uit de huidige tekenreeks asynchroon en schrijft de gegevens naar een buffer, beginnend bij de opgegeven index.

public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <char> ^ buffer, int index, int count);
public override System.Threading.Tasks.Task<int> ReadAsync(char[] buffer, int index, int count);
[System.Runtime.InteropServices.ComVisible(false)]
public override System.Threading.Tasks.Task<int> ReadAsync(char[] buffer, int index, int count);
override this.ReadAsync : char[] * int * int -> System.Threading.Tasks.Task<int>
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.ReadAsync : char[] * int * int -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Char(), index As Integer, count As Integer) As Task(Of Integer)

Parameters

buffer
Char[]

Wanneer deze methode wordt geretourneerd, bevat de opgegeven tekenmatrix met de waarden tussen index en (index + count - 1) vervangen door de tekens die uit de huidige bron worden gelezen.

index
Int32

De positie buffer waarin moet worden geschreven.

count
Int32

Het maximum aantal tekens dat moet worden gelezen. Als het einde van de tekenreeks wordt bereikt voordat het opgegeven aantal tekens in de buffer wordt geschreven, retourneert de methode.

Retouren

Een taak die de asynchrone leesbewerking vertegenwoordigt. De waarde van de TResult parameter bevat het totale aantal bytes dat in de buffer is gelezen. De resultaatwaarde 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 tekenreeks is bereikt.

Kenmerken

Uitzonderingen

buffer is null.

index of count is negatief.

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

De tekenreekslezer is verwijderd.

De lezer wordt momenteel gebruikt door een eerdere leesbewerking.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de eerste 23 tekens van een tekenreeks asynchroon kunt lezen.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            ReadCharacters();
        }

        static async void ReadCharacters()
        {
            string stringToRead = "Some characters to read but not all";
            char[] charsRead = new char[stringToRead.Length];

            using (StringReader reader = new StringReader(stringToRead))
            {
                await reader.ReadAsync(charsRead, 0, 23);
                Console.WriteLine(charsRead);
            }
        }
    }
}
// The example displays the following output:
// Some characters to read
//
Imports System.IO

Module Module1

    Sub Main()
        ReadCharacters()
    End Sub

    Async Sub ReadCharacters()
        Dim stringToRead = "Some characters to read but not all"
        Dim charsRead(stringToRead.Length) As Char

        Using reader As StringReader = New StringReader(stringToRead)
            Await reader.ReadAsync(charsRead, 0, 23)
            Console.WriteLine(charsRead)
        End Using
    End Sub

End Module
' The example displays the following output:
' Some characters to read
'

Opmerkingen

De taak wordt voltooid nadat het aantal tekens dat door de count parameter is opgegeven, is gelezen of het einde van de tekenreeks is bereikt.

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(Char[], Int32, Int32)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.

Van toepassing op