Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método FileStream.WriteAsync (Byte[], Int32, Int32, CancellationToken)

.NET Framework (current version)
 

Publicado: octubre de 2016

Escribe de forma asincrónica una secuencia de bytes en la secuencia actual, se hace avanzar la posición actual dentro de la secuencia el número de bytes escritos y controla las solicitudes de cancelación.

Espacio de nombres:   System.IO
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(false)]
[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public override Task WriteAsync(
	byte[] buffer,
	int offset,
	int count,
	CancellationToken cancellationToken
)

Parámetros

buffer
Type: System.Byte[]

Búfer del que se van a escribir datos.

offset
Type: System.Int32

Desplazamiento en bytes de base cero de buffer desde donde se comienzan a copiar los bytes en la secuencia.

count
Type: System.Int32

Número máximo de bytes que se pueden escribir.

cancellationToken
Type: System.Threading.CancellationToken

Token para supervisar solicitudes de cancelación.

Valor devuelto

Type: System.Threading.Tasks.Task

Tarea que representa la operación de escritura asincrónica.

Exception Condition
ArgumentNullException

El valor de buffer es null.

ArgumentOutOfRangeException

offset o count es negativo.

ArgumentException

La suma de offset y count es mayor que la longitud del búfer.

NotSupportedException

La secuencia no admite escritura.

ObjectDisposedException

Se ha eliminado la secuencia.

InvalidOperationException

La secuencia está en uso por una operación de escritura anterior.

El WriteAsync método le permite realizar operaciones de archivos de gran cantidad de recursos sin bloquear el subproceso principal. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.x o una aplicación de escritorio en que una operación de streaming prolongada puede bloquear el subproceso de interfaz de usuario y hacer que parezca que una aplicación ha dejado de responder. Los métodos asincrónicos se utilizan junto con el async y await palabras clave en Visual Basic y C#.

Utilice la CanWrite propiedad para determinar si la instancia actual admite lectura.

Si se cancela la operación antes de que finalice, la tarea devuelta contiene la Canceled valor para el Status propiedad. Si se elimina el identificador del archivo, la tarea devuelta contiene la ObjectDisposedException excepción en el Exception propiedad.

En el ejemplo siguiente se muestra cómo escribir asincrónicamente 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);
            }
        }
    }
}

Plataforma universal de Windows
Disponible desde 10
.NET Framework
Disponible desde 4.5
Volver al principio
Mostrar: