Sdílet prostřednictvím


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

Definice

Zahájí asynchronní operaci zápisu. (Zvažte místo toho 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.

offset
Int32

Odsazení buffer bajtů, ze kterého se má 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 po dokončení zápisu.

state
Object

Uživatelem zadaný objekt, který odlišuje tento konkrétní asynchronní požadavek na zápis od ostatních požadavků.

Návraty

Představuje IAsyncResult asynchronní zápis, který může stále čekat na vyřízení.

Výjimky

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

Jeden nebo více argumentů je neplatných.

Metody byly volány po uzavř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 k implementaci asynchronních vstupně-výstupních operací použít metody jako BeginWrite a EndWrite . Tyto metody jsou stále k dispozici v aktuálních verzích pro podporu staršího kódu; Nové asynchronní metody, jako ReadAsyncjsou , WriteAsyncCopyToAsync, a FlushAsync, však pomáhají snadněji implementovat asynchronní vstupně-výstupní operace.

IAsyncResult Předejte vrácené aktuální metodou do , EndWrite aby se zajistilo, že se zápis správně dokončí a uvolní prostředky. EndWritemusí 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 ve zpětném volání předaném do BeginWrite. Pokud dojde k chybě během asynchronního zápisu, výjimka nebude vyvolána, dokud EndWrite je volána s IAsyncResult vrácenou touto metodou.

Pokud je datový proud zapisovatelný, zápisem na konec datového proudu se datový proud rozšíří.

Aktuální pozice v datovém proudu se aktualizuje při asynchronním čtení nebo zápisu, ne při dokončení vstupně-výstupní operace. Více souběžných asynchronních požadavků vykreslí pořadí dokončení požadavků na 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, jsou výjimky vyvolány okamžitě z BeginWrite. Chyby, ke kterým dochází během asynchronního požadavku na zápis, jako je například selhání disku během požadavku na vstupně-výstupní operace, se vyskytují ve vlákně fondu vláken a při volání vyvolají EndWritevýjimky .

Platí pro