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 Stream.WriteAsync (Byte[], Int32, Int32)

.NET Framework (current version)
 

Publicado: octubre de 2016

Escribe asincrónicamente una secuencia de bytes en la secuencia actual y avanza la posición actual en esta secuencia según el número de bytes escritos.

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

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

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.

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 E/S 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 escritura.

En el ejemplo siguiente se muestra cómo escribir asincrónicamente en un archivo. El ejemplo utiliza la FileStream (clase), que se deriva de la Stream clase.

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 8
.NET Framework
Disponible desde 4.5
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: