CryptoStream.BeginWrite(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ę zapisu asynchronicznego. (Rozważ użycie WriteAsync zamiast tego).
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parametry
- buffer
- Byte[]
Bufor do zapisu danych.
- offset
- Int32
Przesunięcie bajtów, od buffer
którego rozpocznie się pisanie.
- count
- Int32
Maksymalna liczba bajtów do zapisu.
- callback
- AsyncCallback
Opcjonalne wywołanie zwrotne asynchroniczne, które ma być wywoływane po zakończeniu zapisu.
- state
- Object
Obiekt udostępniony przez użytkownika, który rozróżnia to konkretne asynchroniczne żądanie zapisu z innych żądań.
Zwraca
Element IAsyncResult
reprezentujący zapis asynchroniczny, który nadal może być oczekujący.
Wyjątki
Podjęto próbę asynchronicznego zapisu 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 Stream
implementacja nie obsługuje operacji zapisu.
Uwagi
W programie .NET Framework 4 i starszych wersjach należy używać metod, takich jak BeginWrite i EndWrite do implementowania asynchronicznych operacji we/wy. Te metody są nadal dostępne w bieżących wersjach do obsługi starszego kodu; jednak nowe metody asynchroniczne, takie jak ReadAsync, WriteAsync, CopyToAsynci FlushAsync, ułatwiają implementowanie asynchronicznych operacji we/wy.
Przekaż zwrócony IAsyncResult
przez bieżącą metodę, aby EndWrite upewnić się, że zapis zostanie prawidłowo ukończony i zwolni zasoby.
EndWrite musi być wywoływany raz dla każdego wywołania metody BeginWrite. Można to zrobić za pomocą tego samego kodu, który nazwał BeginWrite
wywołanie zwrotne lub przekazano do BeginWrite
metody . Jeśli podczas zapisu asynchronicznego wystąpi błąd, wyjątek nie zostanie zgłoszony, dopóki EndWrite
nie zostanie wywołany przy użyciu metody zwróconej IAsyncResult
przez tę metodę.
Jeśli strumień jest zapisywalny, zapis na końcu strumienia rozszerza strumień.
Bieżąca pozycja w strumieniu jest aktualizowana podczas wydawania 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 , CanWrite aby określić, czy bieżące wystąpienie obsługuje pisanie.
Jeśli strumień jest zamknięty lub przekazujesz nieprawidłowy argument, wyjątki są zgłaszane natychmiast z BeginWrite
elementu . Błędy występujące podczas asynchronicznego żądania zapisu, 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 EndWrite
metody .