Freigeben über


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

Definition

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

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

Parameter

buffer
Byte[]

Der Puffer, in den die Daten gelesen werden sollen.

offset
Int32

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

count
Int32

Die maximale Anzahl der zu lesenden Bytes.

callback
AsyncCallback

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

state
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

buffer ist null.

offset oder count ist ein negativer Wert.

Es wurde ein asynchroner Lesevorgang über das Streamende hinaus versucht.

Die Pufferlänge minus offset ist kleiner als count.

Der aktuelle Stream unterstützt den Lesevorgang nicht.

Hinweise

In der .NET Framework 4 und früheren Versionen erforderlich, wie z. B. BeginRead und EndRead , asynchrone Datei-Vorgänge zu implementieren. Diese Methoden sind weiterhin im .NET Framework 4.5 verfügbar, um Legacycode zu unterstützen. Die neuen asynchronen Methoden wie ReadAsync, WriteAsyncund FlushAsynchelfen Ihnen jedoch, asynchrone Dateivorgänge einfacher zu implementieren.

EndWrite muss genau einmal aufgerufen werden, für jeden Aufruf von BeginRead. Wenn ein Lesevorgang vor dem Starten eines anderen Lesevorgangs nicht beendet wird, kann dies zu unerwünschtem Verhalten wie einem Deadlock führen.

Hinweis

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

EndRead muss mit dieser IAsyncResult aufgerufen werden, um herauszufinden, wie viele Bytes gelesen wurden.

Gilt für: