Stream.WriteAsync Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skriver asynkront en sekvens med byte till den aktuella strömmen och avancerar den aktuella positionen i den här strömmen med antalet skrivna byte.
Överlagringar
| Name | Description |
|---|---|
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering. |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering. |
| WriteAsync(Byte[], Int32, Int32) |
Skriver asynkront en sekvens med byte till den aktuella strömmen och avancerar den aktuella positionen i den här strömmen med antalet skrivna byte. |
WriteAsync(Byte[], Int32, Int32, CancellationToken)
Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering.
public:
virtual System::Threading::Tasks::Task ^ WriteAsync(cli::array <System::Byte> ^ buffer, int offset, int count, System::Threading::CancellationToken cancellationToken);
public virtual System.Threading.Tasks.Task WriteAsync(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
[<System.Runtime.InteropServices.ComVisible(false)>]
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
Public Overridable Function WriteAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task
Parametrar
- buffer
- Byte[]
Bufferten att skriva data från.
- offset
- Int32
Den nollbaserade byteförskjutningen buffer där byte ska börja kopieras till strömmen.
- count
- Int32
Det maximala antalet byte som ska skrivas.
- cancellationToken
- CancellationToken
Token som ska övervakas för annulleringsbegäranden. Standardvärdet är None.
Returer
En uppgift som representerar den asynkrona skrivåtgärden.
- Attribut
Undantag
buffer är null.
offset eller count är negativ.
Summan av offset och count är större än buffertlängden.
Strömmen stöder inte skrivning.
Strömmen har tagits bort.
Strömmen används för närvarande av en tidigare skrivåtgärd.
Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.
Kommentarer
Med WriteAsync metoden kan du utföra resursintensiva I/O-åtgärder utan att blockera huvudtråden. Den här prestandaöverväganden är särskilt viktig i en Windows 8.x Store-app eller skrivbordsapp där en tidskrävande strömåtgärd kan blockera användargränssnittstråden och få appen att se ut som om den inte fungerar. Asynkrona metoder används tillsammans med nyckelorden async och await i Visual Basic och C#.
Använd egenskapen CanWrite för att avgöra om den aktuella instansen stöder skrivning.
Om åtgärden avbryts innan den slutförs innehåller Canceled den returnerade aktiviteten värdet för Status egenskapen.
Ett exempel finns i överlagringen WriteAsync(Byte[], Int32, Int32) .
Den här metoden lagrar i aktiviteten som returnerar alla undantag som inte används som metodens synkrona motsvarighet kan utlösa. Om ett undantag lagras i den returnerade aktiviteten utlöses undantaget när aktiviteten väntar. Användningsfel, till exempel ArgumentException, genereras fortfarande synkront. De lagrade undantagen finns i undantagen som genereras av Write(Byte[], Int32, Int32).
Se även
Gäller för
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)
Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering.
public virtual System.Threading.Tasks.ValueTask WriteAsync(ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
abstract member WriteAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
override this.WriteAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Overridable Function WriteAsync (buffer As ReadOnlyMemory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask
Parametrar
- buffer
- ReadOnlyMemory<Byte>
Den region av minne som du vill skriva data från.
- cancellationToken
- CancellationToken
Token som ska övervakas för annulleringsbegäranden. Standardvärdet är None.
Returer
En uppgift som representerar den asynkrona skrivåtgärden.
Undantag
Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.
Kommentarer
Med WriteAsync metoden kan du utföra resursintensiva I/O-åtgärder utan att blockera huvudtråden. Den här prestandaöverväganden är särskilt viktig i en Windows 8.x Store-app eller skrivbordsapp där en tidskrävande strömåtgärd kan blockera användargränssnittstråden och få appen att se ut som om den inte fungerar. Asynkrona metoder används tillsammans med nyckelorden async och await i Visual Basic och C#.
Använd egenskapen CanWrite för att avgöra om den aktuella instansen stöder skrivning.
Om åtgärden avbryts innan den slutförs innehåller Canceled den returnerade aktiviteten värdet för Status egenskapen.
Ett exempel finns i överlagringen WriteAsync(Byte[], Int32, Int32) .
Gäller för
WriteAsync(Byte[], Int32, Int32)
Skriver asynkront en sekvens med byte till den aktuella strömmen och avancerar den aktuella positionen i den här strömmen med antalet skrivna byte.
public:
System::Threading::Tasks::Task ^ WriteAsync(cli::array <System::Byte> ^ buffer, int offset, int count);
public System.Threading.Tasks.Task WriteAsync(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
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.WriteAsync : byte[] * int * int -> System.Threading.Tasks.Task
Public Function WriteAsync (buffer As Byte(), offset As Integer, count As Integer) As Task
Parametrar
- buffer
- Byte[]
Bufferten att skriva data från.
- offset
- Int32
Den nollbaserade byteförskjutningen buffer där byte ska börja kopieras till strömmen.
- count
- Int32
Det maximala antalet byte som ska skrivas.
Returer
En uppgift som representerar den asynkrona skrivåtgärden.
- Attribut
Undantag
buffer är null.
offset eller count är negativ.
Summan av offset och count är större än buffertlängden.
Strömmen stöder inte skrivning.
Strömmen har tagits bort.
Strömmen används för närvarande av en tidigare skrivåtgärd.
Exempel
I följande exempel visas hur du skriver asynkront till en fil. I exemplet används FileStream klassen, som härleds från Stream klassen.
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
Kommentarer
Med WriteAsync metoden kan du utföra resursintensiva I/O-åtgärder utan att blockera huvudtråden. Den här prestandaöverväganden är särskilt viktig i en Windows 8.x Store-app eller skrivbordsapp där en tidskrävande strömåtgärd kan blockera användargränssnittstråden och få appen att se ut som om den inte fungerar. Asynkrona metoder används tillsammans med nyckelorden async och await i Visual Basic och C#.
Använd egenskapen CanWrite för att avgöra om den aktuella instansen stöder skrivning.
Den här metoden lagrar i aktiviteten som returnerar alla undantag som inte används som metodens synkrona motsvarighet kan utlösa. Om ett undantag lagras i den returnerade aktiviteten utlöses undantaget när aktiviteten väntar. Användningsfel, till exempel ArgumentException, genereras fortfarande synkront. De lagrade undantagen finns i undantagen som genereras av Write(Byte[], Int32, Int32).