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.ReadAsync-Methode: (Byte[], Int32, Int32)

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Liest eine Bytesequenz asynchron aus dem aktuellen Stream und setzt die Position in diesem Stream um die Anzahl der gelesenen Bytes nach vorn.

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

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

Parameter

buffer
Type: System.Byte[]

Der Puffer, in den die Daten geschrieben werden sollen.

offset
Type: System.Int32

Der Byteoffset im buffer, ab dem Daten aus dem Stream geschrieben werden.

count
Type: System.Int32

Die maximale Anzahl der zu lesenden Bytes.

Rückgabewert

Type: System.Threading.Tasks.Task<Int32>

Eine Aufgabe, die den asynchronen Lesevorgang darstellt. Der Wert des TResult-Parameters enthält die Gesamtzahl der Bytes, die in den Puffer gelesen werden. Der Ergebniswert kann niedriger als die Anzahl der angeforderten Bytes sein, wenn die Anzahl an derzeit verfügbaren Bytes kleiner ist als die angeforderte Anzahl, oder sie kann 0 (null) sein, wenn das Datenstromende erreicht ist.

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

Lesevorgänge werden vom Stream nicht unterstützt.

ObjectDisposedException

Der Stream wurde verworfen.

InvalidOperationException

Der Stream wird zurzeit von einem vorherigen Lesevorgang verwendet.

Die ReadAsync -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 werden in Verbindung mit der async und await Visual Basic und C#-Schlüsselwörter verwendet.

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

Im folgenden Beispiel wird veranschaulicht, wie aus einer Datei asynchron zu lesen. 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)
        {
            string filename = @"c:\Temp\userinputlog.txt";
            byte[] result;

            using (FileStream SourceStream = File.Open(filename, FileMode.Open))
            {
                result = new byte[SourceStream.Length];
                await SourceStream.ReadAsync(result, 0, (int)SourceStream.Length);
            }

            UserInput.Text = System.Text.Encoding.ASCII.GetString(result);
        }
    }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: