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

Definicja

Rozpoczyna asynchroniczną operację zapisu. (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 zapisywania danych z.

offset
Int32

Przesunięcie bajtu, buffer od którego rozpocznie się pisanie.

count
Int32

Maksymalna liczba bajtów do zapisu.

callback
AsyncCallback

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

state
Object

Obiekt dostarczony przez użytkownika, który odróżnia to konkretne asynchroniczne żądanie zapisu od 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 poza końcem 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 Stream implementacja nie obsługuje operacji zapisu.

Uwagi

W .NET Framework 4 i starszych wersjach należy użyć metod, takich jak BeginWrite iEndWrite, aby zaimplementować asynchroniczne operacje 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.

IAsyncResult Przekaż element zwrócony przez bieżącą metodę, aby EndWrite upewnić się, że zapis zostanie ukończony i zwolni zasoby odpowiednio. EndWrite musi być wywoływany raz dla każdego wywołania metody BeginWrite. 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 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 wystąpieniu 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.

CanWrite Użyj właściwości , aby określić, czy bieżące wystąpienie 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