Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Stream.BeginRead-Methode

Beginnt einen asynchronen Lesevorgang. (Verwenden Sie stattdessen die ReadAsync-Methode. Weitere Informationen finden Sie im Abschnitt "Hinweise".)

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

[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public virtual IAsyncResult BeginRead(
	byte[] buffer,
	int offset,
	int count,
	AsyncCallback callback,
	Object state
)

Parameter

buffer
Typ: System.Byte[]
Der Puffer, in den die Daten gelesen werden sollen.
offset
Typ: System.Int32
Der Byteoffset im buffer, ab dem aus dem Stream gelesene Daten geschrieben werden.
count
Typ: System.Int32
Die maximale Anzahl der zu lesenden Bytes.
callback
Typ: System.AsyncCallback
Ein optionaler asynchroner Rückruf, der nach Abschluss des Lesevorgangs aufgerufen werden soll.
state
Typ: System.Object
Ein vom Benutzer bereitgestelltes Objekt, das diese asynchrone Leseanforderung von anderen Anforderungen unterscheidet.

Rückgabewert

Typ: System.IAsyncResult
Ein IAsyncResult, das den asynchronen Lesevorgang darstellt, der möglicherweise noch aussteht.

AusnahmeBedingung
IOException

Es wurde versucht, einen asynchronen Lesevorgang über das Ende des Streams hinaus durchzuführen, oder es ist ein Datenträgerfehler aufgetreten.

ArgumentException

Mindestens eines der Argumente ist ungültig.

ObjectDisposedException

Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde.

NotSupportedException

Die aktuelle Stream-Implementierung unterstützt den Lesevorgang nicht.

In .NET Framework 4 und vorherigen Versionen müssen Sie Methoden wie BeginRead und EndRead verwenden, um asynchrone E/A-Vorgänge zu implementieren. Diese Methoden sind weiterhin verfügbar in .NET Framework 4.5, Legacycode zu unterstützen; jedoch helfen die neuen asynchronen Methoden, wie ReadAsync, WriteAsync, CopyToAsync und FlushAsync, Ihnen, asynchrone E/A-Vorgänge leicht implementieren.

Die Standardimplementierung von BeginRead für einen Stream ruft die Read-Methode synchron auf, sodass Read einige Streams blockieren kann. Instanzen von Klassen wie FileStream und NetworkStream unterstützen jedoch asynchrone Operationen ohne Einschränkungen, wenn die Instanzen asynchron geöffnet wurden. Daher führen Aufrufe von BeginRead nicht zu einer Blockierung dieser Streams. Sie können BeginRead überschreiben (z. B. mit asynchronen Delegaten), um asynchrones Verhalten zu ermöglichen.

Übergeben Sie den IAsyncResult-Rückgabewert an die EndRead-Methode des Streams, um die für das Lesen verwendeten Ressourcen des Betriebssystems freizugeben und zu bestimmen, wie viele Bytes gelesen wurden. EndRead muss für jeden Aufruf von BeginRead einmal aufgerufen werden. Sie können dafür den gleichen Code verwenden, mit dem BeginRead aufgerufen wurde, oder einen Rückruf an BeginRead übergeben.

Die aktuelle Position im Stream wird bei Ausgabe des asynchronen Lese- oder Schreibvorgangs aktualisiert, und nicht nach Abschluss des E/A-Vorgangs.

Bei mehreren gleichzeitig erfolgenden asynchronen Anforderungen ist die Verarbeitungsreihenfolge der Anforderungen unbestimmt.

Verwenden Sie die CanRead-Eigenschaft, um zu bestimmen, ob die aktuelle Instanz Lesevorgänge unterstützt.

Wenn ein Stream geschlossen ist oder Sie ein ungültiges Argument übergeben, werden direkt bei BeginRead Ausnahmen ausgelöst. Bei einer asynchronen Leseanforderung auftretende Fehler, z. B. Fehler auf dem Datenträger während der E/A-Anforderung, treten im Thread des Threadpools auf und lösen beim Aufruf von EndRead Ausnahmen aus.

HinweisHinweis

Das auf diesen Typ oder Member angewendete HostProtectionAttribute-Attribut besitzt den folgenden Resources-Eigenschaftswert: ExternalThreading. Das HostProtectionAttribute hat keine Auswirkungen auf Desktopanwendungen (die normalerweise durch Doppelklicken auf ein Symbol, Eingeben eines Befehls oder einer URL in einem Browser gestartet werden). Weitere Informationen finden Sie unter der HostProtectionAttribute-Klasse oder unter SQL Server-Programmierung und Hostschutzattribute.

.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft