CryptoStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 BeginWrite
Rü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 BeginWrite
ausgelö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
.