Udostępnij za pośrednictwem


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

Definicja

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 BeginWritemetody . 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 BeginWriteelementu . 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 EndWritemetody .

Dotyczy