Freigeben über


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

Definition

Beginnt einen asynchronen Schreibvorgang. (Verwenden Sie stattdessen 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

Parameter

buffer
Byte[]

Der Puffer, aus dem Daten geschrieben werden sollen.

offset
Int32

Der Byteoffset im buffer, ab dem geschrieben werden soll.

count
Int32

Die maximale Anzahl der zu schreibenden Bytes.

callback
AsyncCallback

Ein optionaler asynchroner Rückruf, der nach Abschluss des Schreibvorgangs aufgerufen wird.

state
Object

Ein vom Benutzer bereitgestelltes Objekt, das diese asynchrone Schreibanforderung von anderen Anforderungen unterscheidet.

Gibt zurück

Ein IAsyncResult, das den asynchronen Schreibvorgang darstellt, der möglicherweise noch aussteht.

Ausnahmen

Es wurde versucht, einen asynchronen Schreibvorgang über das Ende des Streams hinaus durchzuführen, oder es ist ein Datenträgerfehler aufgetreten.

Mindestens eines der Argumente ist ungültig.

Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde.

Die aktuelle Stream-Implementierung unterstützt den Schreibvorgang nicht.

Hinweise

In .NET Framework 4 und vorherigen Versionen müssen Sie Methoden wie BeginWrite und EndWrite verwenden, um asynchrone E/A-Vorgänge zu implementieren. Diese Methoden sind noch in aktuellen Versionen verfügbar, um Legacycode zu unterstützen. Die neuen asynchronen Methoden wie ReadAsync, WriteAsync, CopyToAsyncund FlushAsynchelfen Ihnen jedoch, asynchrone E/A-Vorgänge einfacher zu implementieren.

Übergeben Sie den IAsyncResult von der aktuellen Methode zurückgegebenen an, EndWrite um sicherzustellen, dass der Schreibvorgang abgeschlossen und Ressourcen entsprechend freigibt. EndWrite muss einmal für jeden Aufruf von BeginWriteaufgerufen werden. Dazu können Sie entweder denselben Code verwenden, der aufgerufen hat BeginWrite , oder in einem an übergebenen BeginWriteRückruf. Wenn während eines asynchronen Schreibvorgangs ein Fehler auftritt, wird erst dann eine Ausnahme ausgelöst, wenn EndWrite mit dem aufgerufen wird, das IAsyncResult von dieser Methode zurückgegeben wird.

Wenn ein Stream beschreibbar ist, erweitert das Schreiben am Ende des Datenstroms den Stream.

Die aktuelle Position im Stream wird aktualisiert, wenn Sie das asynchrone Lesen oder Schreiben ausgeben, nicht nach Abschluss des E/A-Vorgangs. Bei mehreren gleichzeitigen asynchronen Anforderungen wird die Reihenfolge der Anforderungsvervollständigung unsicher.

Verwenden Sie die CanWrite -Eigenschaft, um zu bestimmen, ob die aktuelle Instanz das Schreiben unterstützt.

Wenn ein Stream geschlossen wird oder Sie ein ungültiges Argument übergeben, werden Ausnahmen sofort von BeginWriteausgelöst. Fehler, die während einer asynchronen Schreibanforderung auftreten, z. B. ein Datenträgerfehler während der E/A-Anforderung, treten im Threadpoolthread auf und lösen Ausnahmen aus, wenn aufgerufen wird EndWrite.

Gilt für: