FileStream.WriteAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Escribe de forma asincrónica una secuencia de bytes en la secuencia actual, avanza la posición actual dentro de esta secuencia por el número de bytes escritos y supervisa las solicitudes de cancelación. |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Escribe de forma asincrónica una secuencia de bytes de una región de memoria en la secuencia de archivos actual, avanza la posición actual dentro de esta secuencia de archivos por el número de bytes escritos y supervisa las solicitudes de cancelación. |
WriteAsync(Byte[], Int32, Int32, CancellationToken)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
Escribe de forma asincrónica una secuencia de bytes en la secuencia actual, avanza la posición actual dentro de esta secuencia por el número de bytes escritos y supervisa las solicitudes de cancelación.
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
Parámetros
- buffer
- Byte[]
Búfer desde el que se van a escribir datos.
- offset
- Int32
Desplazamiento de bytes de base cero en buffer el que se van a empezar a copiar bytes en la secuencia.
- count
- Int32
Número máximo de bytes que se van a escribir.
- cancellationToken
- CancellationToken
Token que se va a supervisar para las solicitudes de cancelación.
Devoluciones
Tarea que representa la operación de escritura asincrónica.
- Atributos
Excepciones
buffer es null.
offset o count es negativo.
La suma de offset y count es mayor que la longitud del búfer.
La secuencia no admite la escritura.
Se ha eliminado la secuencia.
La secuencia está actualmente en uso mediante una operación de escritura anterior.
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Ejemplos
En el ejemplo siguiente se muestra cómo escribir de forma asincrónica en un archivo.
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
Comentarios
El WriteAsync método permite realizar operaciones de archivos que consumen muchos recursos sin bloquear el subproceso principal. Esta consideración de rendimiento es especialmente importante en las aplicaciones en las que una operación de flujo que consume mucho tiempo puede bloquear el subproceso de la interfaz de usuario y hacer que la aplicación aparezca como si no funcionara.
Use la CanWrite propiedad para determinar si la instancia actual admite la escritura.
Si la operación se cancela antes de completarse, la tarea devuelta contiene el Canceled valor de la Status propiedad . Si se elimina el identificador del archivo, la tarea devuelta contiene la ObjectDisposedException excepción en la Exception propiedad .
Este método almacena en la tarea que devuelve todas las excepciones de no uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, se producirá esa excepción cuando se espere la tarea. Las excepciones de uso, como ArgumentException, todavía se producen sincrónicamente. Para las excepciones almacenadas, consulte las excepciones producidas por Write(Byte[], Int32, Int32).
Consulte también
Se aplica a
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
Escribe de forma asincrónica una secuencia de bytes de una región de memoria en la secuencia de archivos actual, avanza la posición actual dentro de esta secuencia de archivos por el número de bytes escritos y supervisa las solicitudes de cancelación.
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
Parámetros
- buffer
- ReadOnlyMemory<Byte>
Región de memoria desde la que se van a escribir datos.
- cancellationToken
- CancellationToken
Token que se va a supervisar para las solicitudes de cancelación. El valor predeterminado es None.
Devoluciones
Tarea que representa la operación de escritura asincrónica.
Excepciones
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Comentarios
El WriteAsync método le permite realizar operaciones de E/S intensivas en recursos sin bloquear el subproceso principal. Esta consideración de rendimiento es especialmente importante en las aplicaciones en las que una operación de flujo que consume mucho tiempo puede bloquear el subproceso de la interfaz de usuario y hacer que la aplicación aparezca como si no funcionara.
Use la CanWrite propiedad para determinar si la instancia actual admite la escritura.
Si la operación se cancela antes de completarse, la tarea devuelta contiene el TaskStatus.Canceled valor de la Task.Status propiedad .