DeflateStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Methode

Definition

Beginnt einen asynchronen Lesevorgang. (Verwenden Sie stattdessen die ReadAsync(Byte[], Int32, Int32)-Methode.)

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback asyncCallback, object asyncState);
public override IAsyncResult BeginRead (byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Public Overrides Function BeginRead (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parameter

bufferarray
Byte[]

Das Bytearray, in das die Daten gelesen werden sollen.

offset
Int32

Der Byteoffset, an dem mit dem Lesen von Daten aus dem Stream begonnen werden soll.

count
Int32

Die maximale Anzahl der zu lesenden Bytes.

asyncCallback
AsyncCallback

Ein optionaler asynchroner Rückruf, der nach Abschluss des Lesevorgangs aufgerufen werden soll.

asyncState
Object

Ein vom Benutzer bereitgestelltes Objekt, das diese asynchrone Leseanforderung von anderen Anforderungen unterscheidet.

Gibt zurück

Ein Objekt, das den asynchronen Lesevorgang darstellt, der möglicherweise noch aussteht.

Ausnahmen

Die Methode hat versucht, asynchron über das Ende des Streams hinaus zu lesen, oder ein Plattenfehler ist aufgetreten.

Mindestens eines der Argumente ist ungültig.

Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde.

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

Dieser Aufruf kann nicht abgeschlossen werden.

Hinweise

Wichtig

Ab .NET 6 liest diese Methode möglicherweise nicht mehr so viele Bytes, wie angefordert wurden. Weitere Informationen finden Sie unter Partielle und Null-Byte-Lesevorgänge in DeflateStream, GZipStream und CryptoStream.

Ab .NET Framework 4.5 können Sie mit der ReadAsync -Methode asynchrone Lesevorgänge ausführen. Die BeginRead -Methode ist in aktuellen Versionen weiterhin verfügbar, um Legacycode zu unterstützen. Sie können jedoch mithilfe der neuen asynchronen Methoden einfacher asynchrone E/A-Vorgänge implementieren. Weitere Informationen finden Sie unter Asynchrone Datei-E/A.

Übergeben Sie den IAsyncResult Rückgabewert an die EndRead -Methode des Datenstroms, um zu bestimmen, wie viele Bytes gelesen wurden, und zum Freigeben von Betriebssystemressourcen, die zum Lesen verwendet werden. Dazu können Sie entweder denselben Code verwenden, der aufgerufen hat BeginRead , oder in einem an übergebenen BeginReadRückruf.

Die aktuelle Position im Stream wird aktualisiert, wenn der asynchrone Lese- oder Schreibvorgang ausgegeben wird, nicht nach Abschluss des E/A-Vorgangs.

Bei mehreren gleichzeitigen asynchronen Anforderungen wird die Reihenfolge der Anforderungsvervollständigung unsicher.

Verwenden Sie die CanRead -Eigenschaft, um zu bestimmen, ob das aktuelle DeflateStream Objekt das Lesen unterstützt.

Wenn ein Stream geschlossen wird oder Sie ein ungültiges Argument übergeben, werden Ausnahmen sofort von BeginReadausgelöst. Fehler, die während einer asynchronen Leseanforderung auftreten, z. B. ein Datenträgerfehler während der E/A-Anforderung, treten im Threadpoolthread auf und lösen Ausnahmen aus, wenn aufgerufen wird EndRead.

Gilt für: