DeflateStream.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 asynchroniczną operację odczytu. (Zamiast tego rozważ użycie 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[]
Tablica bajtów do odczytu danych.
- offset
- Int32
Przesunięcie bajtu, przy którym należy rozpocząć odczytywanie danych ze strumienia.
- count
- Int32
Maksymalna liczba bajtów do odczytania.
- asyncCallback
- AsyncCallback
Opcjonalne wywołanie asynchroniczne, które ma być wywoływane po zakończeniu operacji odczytu.
- asyncState
- Object
Obiekt dostarczony 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 zostały wywołane po zamknięciu strumienia.
Bieżąca DeflateStream implementacja nie obsługuje operacji odczytu.
Nie można ukończyć tego wywołania.
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 odczyty odczytów w DeflateStream, GZipStream i CryptoStream.
Począwszy od .NET Framework 4.5, można wykonywać asynchroniczne operacje odczytu przy użyciu 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 Asynchroniczne operacje we/wy plików.
Przekaż wartość zwracaną IAsyncResultEndRead do metody strumienia, aby określić liczbę odczytanych bajtów i zwolnić zasoby systemu operacyjnego używane do odczytu. Można to zrobić przy użyciu tego samego kodu, który wywołuje BeginRead metodę lub w wywołaniu zwrotnym przekazanym do metody BeginRead.
Bieżące położenie w strumieniu jest aktualizowane po wydaniu asynchronicznej operacji odczytu lub zapisu, a nie po zakończeniu operacji we/wy.
Wiele równoczesnych żądań asynchronicznych sprawia, że kolejność ukończenia żądania jest niepewna.
CanRead Użyj właściwości , aby określić, czy bieżący DeflateStream obiekt obsługuje odczyt.
Jeśli strumień jest zamknięty lub przekazujesz nieprawidłowy argument, wyjątki są zgłaszane natychmiast z elementu BeginRead. 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 metody EndRead.