Sdílet prostřednictvím


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

Definice

Zahájí asynchronní operaci čtení. (Místo toho zvažte použití ReadAsync(Byte[], Int32, Int32) metody.)

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

Parametry

bufferarray
Byte[]

Bajtové pole pro čtení dat do.

offset
Int32

Posun bajtů, při kterém se mají začít číst data z datového proudu.

count
Int32

Maximální počet bajtů, které se mají přečíst.

asyncCallback
AsyncCallback

Volitelné asynchronní zpětné volání, které se má volat při dokončení operace čtení.

asyncState
Object

Objekt poskytovaný uživatelem, který rozlišuje tento konkrétní asynchronní požadavek na čtení od jiných požadavků.

Návraty

Objekt, který představuje asynchronní operaci čtení, která může být stále čekající.

Výjimky

Metoda se pokusila číst asynchronně za koncem datového proudu nebo došlo k chybě disku.

Jeden nebo více argumentů je neplatné.

Metody byly volány po zavření datového proudu.

Aktuální DeflateStream implementace nepodporuje operaci čtení.

Toto volání nelze dokončit.

Poznámky

Důležité

Od verze .NET 6 nemusí tato metoda číst tolik bajtů, kolik bylo požadováno. Další informace naleznete v tématu Částečné a nulové bajty čtení v DeflateStream, GZipStream a CryptoStream.

Počínaje rozhraním .NET Framework 4.5 můžete pomocí ReadAsync metody provádět asynchronní operace čtení. Metoda BeginRead je stále k dispozici v aktuálních verzích pro podporu staršího kódu. Asynchronní vstupně-výstupní operace však můžete snadněji implementovat pomocí nových asynchronních metod. Další informace naleznete v tématu Asynchronní vstupně-výstupní operace souboru.

Předejte návratovou IAsyncResult hodnotu EndRead metodě datového proudu, abyste zjistili, kolik bajtů bylo přečteno a uvolní prostředky operačního systému používané ke čtení. Můžete to provést buď pomocí stejného kódu, který volal BeginRead , nebo v zpětném volání předané BeginRead.

Aktuální pozice v datovém proudu se aktualizuje při vydání asynchronní operace čtení nebo zápisu, ne po dokončení vstupně-výstupní operace.

Více souběžných asynchronních požadavků vykreslí pořadí dokončení požadavku nejistě.

CanRead Pomocí vlastnosti určete, zda aktuální DeflateStream objekt podporuje čtení.

Pokud je datový proud uzavřen nebo předáte neplatný argument, výjimky jsou vyvolány okamžitě z BeginRead. Chyby, ke kterým dochází během asynchronního požadavku na čtení, například selhání disku během vstupně-výstupního požadavku, dochází ve vlákně fondu vláken a při volání EndReadvyvolá výjimku .

Platí pro