Partager via


FileStream.WriteAsync Méthode

Définition

Surcharges

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

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

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Écrit de façon asynchrone une séquence d’octets depuis une zone de mémoire dans le flux de fichier actuel, avance la position actuelle dans ce flux de fichier du nombre d’octets écrits et supervise les demandes d’annulation.

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

Source:
FileStream.cs
Source:
FileStream.cs
Source:
FileStream.cs

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

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

Paramètres

buffer
Byte[]

Mémoire tampon dont sont issues les données à écrire.

offset
Int32

Dans buffer, décalage d'octet de base zéro à partir duquel commencer la copie des octets dans le flux.

count
Int32

Nombre maximal d'octets à écrire.

cancellationToken
CancellationToken

Jeton pour surveiller les requêtes d'annulation.

Retours

Tâche qui représente l’opération d’écriture asynchrone.

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 l'écriture.

Le flux a été supprimé.

Le flux est actuellement utilisé par une opération d’écriture précédente.

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

Exemples

L’exemple suivant montre comment écrire de manière asynchrone dans un fichier.

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)
        {
            UnicodeEncoding uniencoding = new UnicodeEncoding();
            string filename = @"c:\Users\exampleuser\Documents\userinputlog.txt";

            byte[] result = uniencoding.GetBytes(UserInput.Text);

            using (FileStream SourceStream = File.Open(filename, FileMode.OpenOrCreate))
            {
                SourceStream.Seek(0, SeekOrigin.End);
                await SourceStream.WriteAsync(result, 0, result.Length);
            }
        }
    }
}
Imports System.IO
Imports System.Text

Class MainWindow
    Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)
        Dim uniencoding As UnicodeEncoding = New UnicodeEncoding()
        Dim filename As String = "c:\Users\exampleuser\Documents\userinputlog.txt"

        Dim result As Byte() = uniencoding.GetBytes(UserInput.Text)

        Using SourceStream As FileStream = File.Open(filename, FileMode.OpenOrCreate)
            SourceStream.Seek(0, SeekOrigin.End)
            Await SourceStream.WriteAsync(result, 0, result.Length)
        End Using
    End Sub
End Class

Remarques

La WriteAsync méthode vous permet d’effectuer des opérations de fichier nécessitant beaucoup de ressources sans bloquer le thread main. Cette considération des performances est particulièrement importante dans les applications où une opération de flux chronophage peut bloquer le thread d’interface utilisateur et faire en sorte que votre application apparaisse comme si elle ne fonctionnait pas.

Utilisez la CanWrite propriété pour déterminer si le instance actuel prend en charge l’écriture.

Si l’opération est annulée avant qu’elle ne se termine, la tâche retournée contient la Canceled valeur de la Status propriété. Si le handle du fichier est supprimé, la tâche retournée contient l’exception ObjectDisposedException dans la Exception propriété .

Cette méthode stocke dans la tâche toutes les exceptions de 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 sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par Write(Byte[], Int32, Int32).

Voir aussi

S’applique à

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Source:
FileStream.cs
Source:
FileStream.cs
Source:
FileStream.cs

Écrit de façon asynchrone une séquence d’octets depuis une zone de mémoire dans le flux de fichier actuel, avance la position actuelle dans ce flux de fichier du nombre d’octets écrits et supervise les demandes d’annulation.

public override System.Threading.Tasks.ValueTask WriteAsync (ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.WriteAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Overrides Function WriteAsync (buffer As ReadOnlyMemory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask

Paramètres

buffer
ReadOnlyMemory<Byte>

Région de la mémoire dont sont issues les données à écrire.

cancellationToken
CancellationToken

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

Retours

Tâche qui représente l’opération d’écriture asynchrone.

Exceptions

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

Remarques

La WriteAsync méthode vous permet d’effectuer des opérations d’E/S gourmandes en ressources sans bloquer le thread main. Cette considération des performances est particulièrement importante dans les applications où une opération de flux chronophage peut bloquer le thread d’interface utilisateur et faire en sorte que votre application apparaisse comme si elle ne fonctionnait pas.

Utilisez la CanWrite propriété pour déterminer si le instance actuel prend en charge l’écriture.

Si l’opération est annulée avant qu’elle ne se termine, la tâche retournée contient la TaskStatus.Canceled valeur de la Task.Status propriété.

S’applique à