Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Stream.WriteAsync-Methode (Byte[], Int32, Int32)

.NET Framework (current version)
 

Schreibt eine Bytesequenz asynchron in den aktuellen Stream und setzt die aktuelle Position in diesem Stream um die Anzahl der geschriebenen Bytes nach vorn.

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

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

Parameter

buffer
Type: System.Byte[]

Der Puffer, aus dem Daten geschrieben werden sollen.

offset
Type: System.Int32

Der nullbasierte Byteoffset im buffer, ab dem Bytes in den Stream kopiert werden.

count
Type: System.Int32

Die maximale Anzahl der zu schreibenden Bytes.

Rückgabewert

Type: System.Threading.Tasks.Task

Eine Aufgabe, die den asynchronen Schreibvorgang darstellt.

Exception Condition
ArgumentNullException

buffer ist null.

ArgumentOutOfRangeException

offset oder count ist ein negativer Wert.

ArgumentException

Die Summe von offset und count ist größer als die Pufferlänge.

NotSupportedException

Der Stream unterstützt das Schreiben nicht.

ObjectDisposedException

Der Stream wurde verworfen.

InvalidOperationException

Der Stream wird zurzeit von einem vorherigen Schreibvorgang verwendet.

Die WriteAsync -Methode können Sie ressourcenintensive e/a-Vorgänge ausführen, ohne den Hauptthread zu blockieren. Diese Überlegungen zur Leistung sind insbesondere in einer Windows 8.x Store-App oder Desktop-App wichtig, bei der ein zeitaufwendiger Streamvorgang den UI-Thread blockieren kann und es dann den Anschein hat, dass Ihre App nicht funktioniert. Die asynchronen Methoden wird in Verbindung mit der async und await in Visual Basic und C#-Schlüsselwörter.

Verwenden der CanWrite -Eigenschaft bestimmt, ob die aktuelle Instanz Schreibvorgänge unterstützt.

Im folgenden Beispiel wird veranschaulicht, wie asynchron in eine Datei geschrieben wird. Im Beispiel wird die FileStream -Klasse, abgeleitet von der Stream Klasse.

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
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.5
Portable Class Library
Unterstützt in: portable .NET platforms
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: