Stream.ReadAsync Méthode

Définition

Lit de façon asynchrone une séquence d'octets dans le flux actuel et avance la position dans le flux du nombre d'octets lus.

Surcharges

ReadAsync(Memory<Byte>, CancellationToken)

Lit de façon asynchrone une séquence d'octets dans le flux actuel, avance la position dans le flux du nombre d'octets lus et surveille les demandes d'annulation.

ReadAsync(Byte[], Int32, Int32)

Lit de façon asynchrone une séquence d'octets dans le flux actuel et avance la position dans le flux du nombre d'octets lus.

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

Lit de façon asynchrone une séquence d'octets dans le flux actuel, avance la position dans le flux du nombre d'octets lus et surveille les demandes d'annulation.

ReadAsync(Memory<Byte>, CancellationToken)

Lit de façon asynchrone une séquence d'octets dans le flux actuel, avance la position dans le flux du nombre d'octets lus et surveille les demandes d'annulation.

public virtual System.Threading.Tasks.ValueTask<int> ReadAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
abstract member ReadAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
override this.ReadAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overridable Function ReadAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Paramètres

buffer
Memory<Byte>

Région de la mémoire dans laquelle les données doivent être écrites.

cancellationToken
CancellationToken

Jeton pour surveiller les requêtes d'annulation. La valeur par défaut est None.

Retours

ValueTask<Int32>

Tâche qui représente l'opération de lecture asynchrone. La valeur de sa propriété Result 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 alloués dans la mémoire tampon si ce nombre d’octets n’est pas actuellement disponible, ou égale à 0 (zéro) si la fin du flux a été atteinte.

Remarques

La ReadAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal. cette considération de performance est particulièrement importante dans une application de bureau ou une application de bureau Windows 8. x dans laquelle une opération de flux fastidieux peut bloquer le thread d’interface utilisateur et faire apparaître votre application comme si elle ne fonctionnait pas. les méthodes async sont utilisées conjointement avec les async await mots clés et dans Visual Basic et C#.

Utilisez la CanRead propriété pour déterminer si l’instance actuelle prend en charge la lecture.

Si l’opération est annulée avant d’être terminée, la tâche retournée contient la TaskStatus.Canceled valeur de la Status propriété.

Pour obtenir un exemple, consultez la ReadAsync(Byte[], Int32, Int32) surcharge.

S’applique à

ReadAsync(Byte[], Int32, Int32)

Lit de façon asynchrone une séquence d'octets dans le flux actuel et avance la position dans le flux du nombre d'octets lus.

public:
 System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int count);
public System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int count);
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int count);
member this.ReadAsync : byte[] * int * int -> System.Threading.Tasks.Task<int>
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.ReadAsync : byte[] * int * int -> System.Threading.Tasks.Task<int>
Public Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer) As Task(Of Integer)

Paramètres

buffer
Byte[]

Mémoire tampon où écrire les données.

offset
Int32

Dans buffer, décalage d'octet auquel commencer l'écriture des données à partir du flux.

count
Int32

Nombre maximal d'octets à lire.

Retours

Task<Int32>

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

Attributs

Exceptions

buffer a la valeur null.

offset ou count est un nombre négatif.

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

Le flux ne prend pas en charge la lecture.

Le flux a été supprimé.

Le flux est actuellement utilisé par une opération de lecture antérieure.

Exemples

L’exemple suivant montre comment lire un fichier de façon asynchrone. L’exemple utilise la FileStream classe, qui dérive de la Stream classe.

using System;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.IO;

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            string filename = @"c:\Temp\userinputlog.txt";
            byte[] result;

            using (FileStream SourceStream = File.Open(filename, FileMode.Open))
            {
                result = new byte[SourceStream.Length];
                await SourceStream.ReadAsync(result, 0, (int)SourceStream.Length);
            }

            UserInput.Text = System.Text.Encoding.ASCII.GetString(result);
        }
    }
}
Imports System.IO
Imports System.Text

Class MainWindow
    Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)
        Dim filename As String = "c:\Temp\userinputlog.txt"

        Dim result As Byte()

        Using SourceStream As FileStream = File.Open(filename, FileMode.Open)
            result = New Byte(SourceStream.Length - 1) {}
            Await SourceStream.ReadAsync(result, 0, CType(SourceStream.Length, Integer))
        End Using

        UserInput.Text = System.Text.Encoding.ASCII.GetString(result)
    End Sub
End Class

Remarques

La ReadAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal. cette considération de performance est particulièrement importante dans une application de bureau ou une application de bureau Windows 8. x dans laquelle une opération de flux fastidieux peut bloquer le thread d’interface utilisateur et faire apparaître votre application comme si elle ne fonctionnait pas. les méthodes async sont utilisées conjointement avec les async await mots clés et dans Visual Basic et C#.

Utilisez la CanRead propriété pour déterminer si l’instance actuelle prend en charge la lecture.

S’applique à

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

Lit de façon asynchrone une séquence d'octets dans le flux actuel, avance la position dans le flux du nombre d'octets lus et surveille les demandes d'annulation.

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

Paramètres

buffer
Byte[]

Mémoire tampon où écrire les données.

offset
Int32

Dans buffer, décalage d'octet auquel commencer l'écriture des données à partir du flux.

count
Int32

Nombre maximal d'octets à lire.

cancellationToken
CancellationToken

Jeton pour surveiller les requêtes d'annulation. La valeur par défaut est None.

Retours

Task<Int32>

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

Attributs

Exceptions

buffer a la valeur null.

offset ou count est un nombre négatif.

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

Le flux ne prend pas en charge la lecture.

Le flux a été supprimé.

Le flux est actuellement utilisé par une opération de lecture antérieure.

Remarques

La ReadAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal. cette considération de performance est particulièrement importante dans une application de bureau ou une application de bureau Windows 8. x dans laquelle une opération de flux fastidieux peut bloquer le thread d’interface utilisateur et faire apparaître votre application comme si elle ne fonctionnait pas. les méthodes async sont utilisées conjointement avec les async await mots clés et dans Visual Basic et C#.

Utilisez la CanRead propriété pour déterminer si l’instance actuelle prend en charge la lecture.

Si l’opération est annulée avant d’être terminée, la tâche retournée contient la Canceled valeur de la Status propriété.

Pour obtenir un exemple, consultez la ReadAsync(Byte[], Int32, Int32) surcharge.

Voir aussi

S’applique à