Sdílet prostřednictvím


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

Definice

Zahájí asynchronní operaci zápisu. (Místo toho zvažte použití WriteAsync .)

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[]

Vyrovnávací paměť pro zápis dat z.

offset
Int32

Posun bajtu buffer , ze kterého chcete začít psát.

count
Int32

Maximální počet bajtů k zápisu.

callback
AsyncCallback

Volitelné asynchronní zpětné volání, které se má volat při dokončení zápisu.

state
Object

Objekt poskytovaný uživatelem, který rozlišuje tento konkrétní asynchronní požadavek zápisu od jiných požadavků.

Návraty

Jedná se o IAsyncResult asynchronní zápis, který může být stále čekající.

Výjimky

Pokusil se o asynchronní zápis za konec datového proudu nebo došlo k chybě disku.

Jeden nebo více argumentů je neplatné.

Metody byly volány po zavření datového proudu.

Aktuální Stream implementace nepodporuje operaci zápisu.

Poznámky

V rozhraní .NET Framework 4 a starších verzích musíte použít metody, jako jsou BeginWrite a EndWrite, k implementaci asynchronních vstupně-výstupních operací. Tyto metody jsou stále k dispozici v aktuálních verzích pro podporu starší verze kódu; Nové asynchronní metody, například ReadAsync, WriteAsync, CopyToAsynca FlushAsync, vám však pomáhají snadněji implementovat asynchronní vstupně-výstupní operace.

IAsyncResult Předejte vrácenou aktuální metodou, aby EndWrite se zajistilo, že zápis dokončí a uvolní prostředky odpovídajícím způsobem. EndWrite musí být volána jednou pro každé volání BeginWrite. Můžete to provést buď pomocí stejného kódu, který volal BeginWrite , nebo v zpětném volání předané BeginWrite. Pokud dojde k chybě během asynchronního zápisu, výjimka nebude vyvolána, dokud EndWrite nebude volána s IAsyncResult vrácenou touto metodou.

Pokud je datový proud zapisovatelný, zápis na konci datového proudu tento datový proud rozbalí.

Aktuální pozice v datovém proudu se aktualizuje, když vydáte asynchronní čtení nebo zápis, ne po dokončení vstupně-výstupní operace. Více souběžných asynchronních požadavků vykreslí pořadí dokončení požadavku nejistě.

CanWrite Pomocí vlastnosti určete, zda aktuální instance podporuje zápis.

Pokud je datový proud uzavřen nebo předáte neplatný argument, výjimky jsou vyvolány okamžitě z BeginWrite. Chyby, ke kterým dochází během asynchronního požadavku na zápis, například selhání disku během V/V požadavku, dochází ve vlákně fondu vláken a při volání EndWritevyvolá výjimku .

Platí pro