Stream.WriteAsync Método

Definição

Grava assincronamente uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo no número de bytes gravados.Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

Sobrecargas

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

Grava uma sequência de bytes no fluxo atual assincronamente, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora as solicitações de cancelamento.Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Grava uma sequência de bytes no fluxo atual assincronamente, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora as solicitações de cancelamento.Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

WriteAsync(Byte[], Int32, Int32)

Grava assincronamente uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo no número de bytes gravados.Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

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

Grava uma sequência de bytes no fluxo atual assincronamente, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora as solicitações de cancelamento.Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

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

Parâmetros

buffer
Byte[]

O buffer do qual os dados serão gravados.The buffer to write data from.

offset
Int32

O deslocamento de bytes baseado em zero em buffer do qual será iniciada a cópia de bytes no fluxo.The zero-based byte offset in buffer from which to begin copying bytes to the stream.

count
Int32

O número máximo de bytes a serem gravados.The maximum number of bytes to write.

cancellationToken
CancellationToken

O token a se monitorar para solicitações de cancelamento.The token to monitor for cancellation requests. O valor padrão é None.The default value is None.

Retornos

Uma tarefa que representa a operação de gravação assíncrona.A task that represents the asynchronous write operation.

Atributos

Exceções

buffer é null.buffer is null.

offset ou count é negativo.offset or count is negative.

A soma de offset e count é maior que o tamanho do buffer.The sum of offset and count is larger than the buffer length.

Não há suporte para gravação no fluxo.The stream does not support writing.

O fluxo foi descartado.The stream has been disposed.

O fluxo está em uso no momento por uma operação de gravação anterior.The stream is currently in use by a previous write operation.

Comentários

O WriteAsync método permite que você execute operações de e/s com uso intensivo de recursos sem bloquear o thread principal.The WriteAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Essa consideração sobre o desempenho é particularmente importante em um aplicativo Windows Store 8.xWindows 8.x Store ou área de trabalhodesktop em que uma operação demorada de fluxo pode bloquear o thread de interface do usuário e fazer seu aplicativo parecer como se não estivesse funcionando.This performance consideration is particularly important in a Windows Store 8.xWindows 8.x Store app or área de trabalhodesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Os métodos assíncronos são usados em conjunto com async as await palavras-chave e no Visual Basic C#e.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Use a CanWrite propriedade para determinar se a instância atual oferece suporte à gravação.Use the CanWrite property to determine whether the current instance supports writing.

Se a operação for cancelada antes de ser concluída, a tarefa retornada Canceled conterá o Status valor da propriedade.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

Para obter um exemplo, consulte WriteAsync(Byte[], Int32, Int32) a sobrecarga.For an example, see the WriteAsync(Byte[], Int32, Int32) overload.

Veja também

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Grava uma sequência de bytes no fluxo atual assincronamente, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora as solicitações de cancelamento.Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

public virtual System.Threading.Tasks.ValueTask WriteAsync (ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = null);
abstract member WriteAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
override this.WriteAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask

Parâmetros

buffer
ReadOnlyMemory<Byte>

A região da memória da qual gravar os dados.The region of memory to write data from.

cancellationToken
CancellationToken

O token a se monitorar para solicitações de cancelamento.The token to monitor for cancellation requests. O valor padrão é None.The default value is None.

Retornos

Uma tarefa que representa a operação de gravação assíncrona.A task that represents the asynchronous write operation.

Comentários

O WriteAsync método permite que você execute operações de e/s com uso intensivo de recursos sem bloquear o thread principal.The WriteAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Essa consideração sobre o desempenho é particularmente importante em um aplicativo Windows Store 8.xWindows 8.x Store ou área de trabalhodesktop em que uma operação demorada de fluxo pode bloquear o thread de interface do usuário e fazer seu aplicativo parecer como se não estivesse funcionando.This performance consideration is particularly important in a Windows Store 8.xWindows 8.x Store app or área de trabalhodesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Os métodos assíncronos são usados em conjunto com async as await palavras-chave e no Visual Basic C#e.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Use a CanWrite propriedade para determinar se a instância atual oferece suporte à gravação.Use the CanWrite property to determine whether the current instance supports writing.

Se a operação for cancelada antes de ser concluída, a tarefa retornada Canceled conterá o Status valor da propriedade.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

Para obter um exemplo, consulte WriteAsync(Byte[], Int32, Int32) a sobrecarga.For an example, see the WriteAsync(Byte[], Int32, Int32) overload.

WriteAsync(Byte[], Int32, Int32)

Grava assincronamente uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo no número de bytes gravados.Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

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

Parâmetros

buffer
Byte[]

O buffer do qual os dados serão gravados.The buffer to write data from.

offset
Int32

O deslocamento de bytes baseado em zero em buffer do qual será iniciada a cópia de bytes no fluxo.The zero-based byte offset in buffer from which to begin copying bytes to the stream.

count
Int32

O número máximo de bytes a serem gravados.The maximum number of bytes to write.

Retornos

Uma tarefa que representa a operação de gravação assíncrona.A task that represents the asynchronous write operation.

Atributos

Exceções

buffer é null.buffer is null.

offset ou count é negativo.offset or count is negative.

A soma de offset e count é maior que o tamanho do buffer.The sum of offset and count is larger than the buffer length.

Não há suporte para gravação no fluxo.The stream does not support writing.

O fluxo foi descartado.The stream has been disposed.

O fluxo está em uso no momento por uma operação de gravação anterior.The stream is currently in use by a previous write operation.

Exemplos

O exemplo a seguir mostra como gravar de forma assíncrona em um arquivo.The following example shows how to write asynchronously to a file. O exemplo usa a FileStream classe, que deriva Stream da classe.The example uses the FileStream class, which derives from the Stream class.

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

Comentários

O WriteAsync método permite que você execute operações de e/s com uso intensivo de recursos sem bloquear o thread principal.The WriteAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Essa consideração sobre o desempenho é particularmente importante em um aplicativo Windows Store 8.xWindows 8.x Store ou área de trabalhodesktop em que uma operação demorada de fluxo pode bloquear o thread de interface do usuário e fazer seu aplicativo parecer como se não estivesse funcionando.This performance consideration is particularly important in a Windows Store 8.xWindows 8.x Store app or área de trabalhodesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Os métodos assíncronos são usados em conjunto com async as await palavras-chave e no Visual Basic C#e.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Use a CanWrite propriedade para determinar se a instância atual oferece suporte à gravação.Use the CanWrite property to determine whether the current instance supports writing.

Aplica-se a