DeflateStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 den 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 BeginRead hat, 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.
Mehrere gleichzeitige asynchrone Anforderungen machen die Anforderungsvervollständigungsreihenfolge unsicher.
Verwenden Sie die CanRead -Eigenschaft, um zu bestimmen, ob das aktuelle DeflateStream Objekt Lesevorgänge 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 Beim Aufrufen EndReadvon Ausnahmen aus.