Udostępnij za pośrednictwem


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

Definicja

Rozpoczyna asynchroniczną operację zapisu. (Zamiast tego rozważ użycie WriteAsync(Byte[], Int32, Int32) metody ).

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

Parametry

arraybuffer
Byte[]

Bufor do zapisywania danych z.

offset
Int32

Przesunięcie bajtu, od których rozpocznie się zapisywanie.

count
Int32

Maksymalna liczba bajtów do zapisu.

asyncCallback
AsyncCallback

Opcjonalne wywołanie asynchroniczne, które ma być wywoływane po zakończeniu operacji zapisu.

asyncState
Object

Obiekt dostarczony przez użytkownika, który odróżnia to konkretne asynchroniczne żądanie zapisu od innych żądań.

Zwraca

Obiekt reprezentujący asynchroniczną operację zapisu, która nadal może być oczekująca.

Wyjątki

Metoda próbowała zapisać 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 zapisu.

Nie można wykonać operacji zapisu, ponieważ strumień jest zamknięty.

Uwagi

Począwszy od .NET Framework 4.5, można wykonywać asynchroniczne operacje zapisu przy użyciu WriteAsync metody . Metoda BeginWrite 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.

IAsyncResult Przekaż obiekt zwrócony przez bieżącą metodę, aby EndWrite upewnić się, że zapis zostanie ukończony i zwolni zasoby odpowiednio. Można to zrobić przy użyciu tego samego kodu, który wywołuje BeginWrite metodę lub w wywołaniu zwrotnym przekazanym do metody BeginWrite. Jeśli podczas operacji zapisu asynchronicznego wystąpi błąd, wyjątek nie zostanie zgłoszony do momentu EndWrite wywołania metody zwracanej IAsyncResult przez tę metodę.

Jeśli strumień jest zapisywalny, zapis na końcu strumienia rozszerza strumień.

Bieżące położenie w strumieniu jest aktualizowane po wystawieniu 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.

Użyj właściwości , CanWrite aby określić, czy bieżący DeflateStream obiekt obsługuje zapisywanie.

Jeśli strumień jest zamknięty lub przekazujesz nieprawidłowy argument, wyjątki są zgłaszane natychmiast z elementu BeginWrite. Błędy występujące podczas asynchronicznego żądania zapisu, takie jak błąd dysku podczas żądania we/wy, występują w wątku puli wątków i zgłaszają wyjątki podczas wywoływania metody EndWrite.

Dotyczy