StringReader.ReadAsync Méthode

Définition

Surcharges

Nom Description
ReadAsync(Memory<Char>, CancellationToken)

Lit de façon asynchrone tous les caractères de la chaîne d’entrée, en commençant à la position actuelle et avance la position actuelle jusqu’à la fin de la chaîne d’entrée.

ReadAsync(Char[], Int32, Int32)

Lit un nombre maximal spécifié de caractères de la chaîne actuelle de manière asynchrone et écrit les données dans une mémoire tampon, en commençant à l’index spécifié.

ReadAsync(Memory<Char>, CancellationToken)

Lit de façon asynchrone tous les caractères de la chaîne d’entrée, en commençant à la position actuelle et avance la position actuelle jusqu’à la fin de la chaîne d’entrée.

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)

Paramètres

buffer
Memory<Char>

Lorsque cette méthode est retournée, contient les caractères lus à partir de la source actuelle.

cancellationToken
CancellationToken

Jeton à surveiller pour les demandes d’annulation. La valeur par défaut est None.

Retours

Tâche qui représente l’opération de lecture asynchrone. La valeur du TResult paramètre contient le nombre total de caractères lus dans la mémoire tampon.

Exceptions

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

S’applique à

ReadAsync(Char[], Int32, Int32)

Lit un nombre maximal spécifié de caractères de la chaîne actuelle de manière asynchrone et écrit les données dans une mémoire tampon, en commençant à l’index spécifié.

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)

Paramètres

buffer
Char[]

Lorsque cette méthode retourne, contient le tableau de caractères spécifié avec les valeurs comprises entre index et (index + count - 1) remplacées par les caractères lus à partir de la source actuelle.

index
Int32

Position dans buffer laquelle commencer l’écriture.

count
Int32

Nombre maximal de caractères à lire. Si la fin de la chaîne est atteinte avant que le nombre spécifié de caractères soit écrit dans la mémoire tampon, la méthode retourne.

Retours

Tâche qui représente l’opération de lecture asynchrone. La valeur du TResult paramètre contient le nombre total d’octets lus dans la mémoire tampon. La valeur de résultat peut être inférieure au nombre d’octets demandé si le nombre d’octets actuellement disponibles est inférieur au nombre demandé, ou il peut être égal à 0 (zéro) si la fin de la chaîne a été atteinte.

Attributs

Exceptions

buffer a la valeur null.

index ou count est négatif.

La somme et indexcount est supérieure à la longueur de la mémoire tampon.

Le lecteur de chaîne a été supprimé.

Le lecteur est actuellement utilisé par une opération de lecture précédente.

Exemples

L’exemple suivant montre comment lire les 23 premiers caractères d’une chaîne de façon asynchrone.

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
'

Remarques

La tâche se termine une fois que le nombre de caractères spécifié par le count paramètre est lu ou que la fin de la chaîne est atteinte.

Cette méthode stocke dans la tâche toutes les exceptions non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de façon synchrone. Pour les exceptions stockées, consultez les exceptions levées par Read(Char[], Int32, Int32).

S’applique à