GZipStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Rozpoczyna operację odczytu asynchronicznego. (Zamiast tego rozważ użycie ReadAsync(Byte[], Int32, Int32) metody).
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginRead (byte[] array, 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 (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Parametry
- arraybuffer
- Byte[]
Tablica bajtów do odczytu danych.
- offset
- Int32
Przesunięcie bajtu, przy którym rozpocznie się odczytywanie danych ze strumienia.
- count
- Int32
Maksymalna liczba bajtów do odczytania.
- asyncCallback
- AsyncCallback
Opcjonalne wywołanie zwrotne asynchroniczne, które ma być wywoływane po zakończeniu operacji odczytu.
- asyncState
- Object
Obiekt udostępniony przez użytkownika, który rozróżnia to konkretne asynchroniczne żądanie odczytu z innych żądań.
Zwraca
Obiekt reprezentujący operację odczytu asynchronicznego, która nadal może być oczekująca.
Wyjątki
Metoda próbowała odczytać asynchronicznie obok końca strumienia lub wystąpił błąd dysku.
Co najmniej jeden argument jest nieprawidłowy.
Metody były wywoływane po zamknięciu strumienia.
Bieżąca GZipStream implementacja nie obsługuje operacji odczytu.
Nie można wykonać operacji odczytu, ponieważ strumień jest zamknięty.
Uwagi
Ważne
Począwszy od platformy .NET 6, ta metoda może nie odczytywać tyle bajtów, ile żądano. Aby uzyskać więcej informacji, zobacz Częściowe i zerowe bajty odczyty w deflatestream, GZipStream i CryptoStream.
Począwszy od .NET Framework 4.5, można wykonywać operacje odczytu asynchronicznego przy użyciu Stream.ReadAsync metody . Metoda BeginRead jest nadal dostępna w bieżących wersjach, aby obsługiwać starszy kod. Można jednak łatwiej zaimplementować asynchroniczne operacje we/wy przy użyciu nowych metod asynchronicznych. Aby uzyskać więcej informacji, zobacz Asynchroniczny plik We/Wy.
IAsyncResult Przekaż wartość zwracaną do EndRead metody strumienia, aby określić liczbę odczytanych bajtów i zwolnić zasoby systemu operacyjnego używane do odczytu. Można to zrobić za pomocą tego samego kodu, który nazwał BeginRead wywołanie zwrotne lub przekazano do BeginReadmetody .
Bieżąca pozycja w strumieniu jest aktualizowana po wydaniu asynchronicznego odczytu lub zapisu, a nie po zakończeniu operacji we/wy.
Wiele równoczesnych żądań asynchronicznych sprawia, że kolejność ukończenia żądania jest niepewna.
Użyj właściwości , CanRead aby określić, czy bieżący GZipStream obiekt obsługuje odczyt.
Jeśli strumień jest zamknięty lub przekazujesz nieprawidłowy argument, wyjątki są zgłaszane natychmiast z BeginReadelementu . Błędy występujące podczas asynchronicznego żądania odczytu, takie jak awaria dysku podczas żądania we/wy, występują w wątku puli wątków i zgłaszają wyjątki podczas wywoływania EndReadmetody .