Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo FileStream.WriteAsync (Byte[], Int32, Int32, CancellationToken)

.NET Framework (current version)
 

Data di pubblicazione: ottobre 2016

Scrive in modo asincrono una sequenza di byte nel flusso corrente e passa alla posizione successiva all'interno del flusso corrente in base al numero di byte scritti e monitora le richieste di annullamento.

Spazio dei nomi:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

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

Parametri

buffer
Type: System.Byte[]

Buffer da cui scrivere i dati.

offset
Type: System.Int32

Offset dei byte in base zero in buffer da cui iniziare la copia dei byte nel flusso.

count
Type: System.Int32

Numero massimo di byte da scrivere.

cancellationToken
Type: System.Threading.CancellationToken

Token da monitorare per le richieste di annullamento.

Valore restituito

Type: System.Threading.Tasks.Task

Attività che rappresenta l'operazione di scrittura asincrona.

Exception Condition
ArgumentNullException

buffer è null.

ArgumentOutOfRangeException

offset o count è negativo.

ArgumentException

La somma di offset e count è maggiore della lunghezza del buffer.

NotSupportedException

Il flusso non supporta la scrittura.

ObjectDisposedException

Il flusso è stato eliminato.

InvalidOperationException

Il flusso è attualmente usato da un'operazione di scrittura precedente.

Il WriteAsync metodo consente di eseguire operazioni sui file di risorse senza bloccare il thread principale. Questa considerazione sulle prestazioni è particolarmente importante in un'applicazione Windows 8.x Store o desktop in cui tramite un'operazione di flusso per cui è richiesto molto tempo è possibile bloccare il thread UI e far sembrare che l'applicazione non funzioni. I metodi asincroni vengono utilizzati in combinazione con il async e await le parole chiave in Visual Basic e c#.

Utilizzare la CanWrite proprietà per determinare se l'istanza corrente supporta la lettura.

Se l'operazione viene annullata prima del completamento, l'attività restituita contiene il Canceled valore per la Status proprietà. Se l'handle per il file è stato eliminato, l'attività restituita contiene il ObjectDisposedException eccezione il Exception proprietà.

Nell'esempio seguente viene illustrato come scrivere in modo asincrono in un file.

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);
            }
        }
    }
}

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 4.5
Torna all'inizio
Mostra: