Stream.EndRead(IAsyncResult) Methode

Definition

Wartet, bis der ausstehende asynchrone Lesevorgang abgeschlossen ist. (Verwenden Sie stattdessen ReadAsync(Byte[], Int32, Int32).)

public:
 virtual int EndRead(IAsyncResult ^ asyncResult);
public virtual int EndRead (IAsyncResult asyncResult);
abstract member EndRead : IAsyncResult -> int
override this.EndRead : IAsyncResult -> int
Public Overridable Function EndRead (asyncResult As IAsyncResult) As Integer

Parameter

asyncResult
IAsyncResult

Der Verweis auf die ausstehende asynchrone Anforderung, die beendet werden soll.

Gibt zurück

Int32

Die Anzahl der aus dem Stream gelesenen Bytes. Diese Anzahl kann zwischen 0 und der Anzahl der angeforderten Bytes liegen. Streams geben nur am Ende des Streams 0 zurück, andernfalls sollten sie blockieren, bis mindestens 1 Byte verfügbar ist.

Ausnahmen

asyncResult ist null.

Ein Handle für den ausstehenden Lesevorgang ist nicht verfügbar.

- oder -

Die anstehende Operation unterstützt keine Lesevorgänge.

asyncResult basiert nicht auf einer BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) -Methode im aktuellen Stream.

Der Stream ist geschlossen, oder ein interner Fehler ist aufgetreten.

Hinweise

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 im .NET Framework 4.5 verfügbar, um Legacycode zu unterstützen. Die neuen asynchronen Methoden, wie zReadAsync. B. , WriteAsync, CopyToAsync, und FlushAsync, helfen Ihnen dabei, asynchrone I/O-Vorgänge einfacher zu implementieren.

Rufen Sie auf EndRead , um zu bestimmen, wie viele Bytes aus dem Datenstrom gelesen wurden.

EndRead kann einmal auf jedem IAsyncResult von BeginRead.

Diese Methode blockiert, bis die E/A-Operation abgeschlossen ist.

Gilt für:

Siehe auch