Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Method

Definition

Beginnt einen asynchronen Schreibvorgang.Begins an asynchronous write operation. (Verwenden Sie stattdessen WriteAsync(Byte[], Int32, Int32).)(Consider using WriteAsync(Byte[], Int32, Int32) instead.)

public:
 virtual IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public virtual IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
abstract member BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overridable 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.The buffer to write data from.

offset
Int32 Int32 Int32 Int32

Der Byteoffset im buffer, ab dem geschrieben werden soll.The byte offset in buffer from which to begin writing.

count
Int32 Int32 Int32 Int32

Die maximale Anzahl der zu schreibenden Bytes.The maximum number of bytes to write.

callback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

Ein optionaler asynchroner Rückruf, der nach Abschluss des Schreibvorgangs aufgerufen wird.An optional asynchronous callback, to be called when the write is complete.

state
Object Object Object Object

Ein vom Benutzer bereitgestelltes Objekt, das diese asynchrone Schreibanforderung von anderen Anforderungen unterscheidet.A user-provided object that distinguishes this particular asynchronous write request from other requests.

Gibt zurück

Ein IAsyncResult, das den asynchronen Schreibvorgang darstellt, der möglicherweise noch aussteht.An IAsyncResult that represents the asynchronous write, which could still be pending.

Ausnahmen

Es wurde versucht, einen asynchronen Schreibvorgang über das Ende des Streams hinaus durchzuführen, oder es ist ein Datenträgerfehler aufgetreten.Attempted an asynchronous write past the end of the stream, or a disk error occurs.

Mindestens eines der Argumente ist ungültig.One or more of the arguments is invalid.

Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde.Methods were called after the stream was closed.

Die aktuelle Stream-Implementierung unterstützt den Schreibvorgang nicht.The current Stream implementation does not support the write operation.

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.In the .NET Framework 4 and earlier versions, you have to use methods such as BeginWrite and EndWrite to implement asynchronous I/O operations. Diese Methoden sind weiterhin verfügbar, in der .NET Framework 4.5.NET Framework 4.5 zur Unterstützung von legacy-Code, jedoch die neuen Async-Methoden, wie z. B. ReadAsync, WriteAsync, CopyToAsync, und FlushAsync, Hilfe, die Sie implementieren leichter asynchrone e/a-Vorgänge.These methods are still available in the .NET Framework 4.5.NET Framework 4.5 to support legacy code; however, the new async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you implement asynchronous I/O operations more easily.

Die standardmäßige Implementierung des BeginWrite für einen Datenstrom Aufrufe der Write Methode synchron, was bedeutet, dass Write für einige Datenströme blockiert werden könnten.The default implementation of BeginWrite on a stream calls the Write method synchronously, which means that Write might block on some streams. Jedoch Instanzen von Klassen wie z. B. FileStream und NetworkStream asynchrone Vorgänge vollständig unterstützt, wenn die Instanzen asynchron geöffnet wurden.However, instances of classes such as FileStream and NetworkStream fully support asynchronous operations if the instances have been opened asynchronously. Aus diesem Grund Aufrufe von BeginWrite wird nicht für diese Datenströme blockiert.Therefore, calls to BeginWrite will not block on those streams. Sie können außer Kraft setzen BeginWrite (mithilfe von asynchronen Delegaten, z. B.) um asynchrones Verhalten bereitzustellen.You can override BeginWrite (by using async delegates, for example) to provide asynchronous behavior.

Übergeben Sie die IAsyncResult zurückgegeben, die von der aktuellen Methode zum EndWrite um sicherzustellen, dass der Schreibvorgang abgeschlossen ist und die Ressourcen entsprechend freigegeben werden.Pass the IAsyncResult returned by the current method to EndWrite to ensure that the write completes and frees resources appropriately. EndWrite muss einmal für jeden Aufruf aufgerufen werden BeginWrite.EndWrite must be called once for every call to BeginWrite. Hierzu können Sie entweder über den gleichen Code, der aufgerufen BeginWrite oder einen Rückruf, der an übergebene BeginWrite.You can do this either by using the same code that called BeginWrite or in a callback passed to BeginWrite. Wenn während eines asynchronen Schreibvorgangs ein Fehler auftritt, eine Ausnahme wird nicht ausgelöst bis EndWrite aufgerufen wird und die IAsyncResult von dieser Methode zurückgegeben.If an error occurs during an asynchronous write, an exception will not be thrown until EndWrite is called with the IAsyncResult returned by this method.

Wenn ein Stream geschrieben werden kann, erweitert Schreibvorgang am Ende des Streams, der den Stream.If a stream is writable, writing at the end of the stream expands the stream.

Beim Ausgeben der asynchronen Lese- oder Schreibvorgang nicht, wenn der e/a-Vorgang abgeschlossen ist, wird die aktuelle Position im Stream aktualisiert.The current position in the stream is updated when you issue the asynchronous read or write, not when the I/O operation completes. Mehrere gleichzeitige asynchrone Anforderungen für das Rendern der Anforderung Abschluss nicht sicher sind.Multiple simultaneous asynchronous requests render the request completion order uncertain.

Verwenden der CanWrite Eigenschaft, um zu bestimmen, ob die aktuelle Instanz Schreibvorgänge unterstützt.Use the CanWrite property to determine whether the current instance supports writing.

Wenn ein Stream geschlossen ist, oder Sie ein ungültiges Argument übergeben, Ausnahmen werden ausgelöst, unmittelbar von BeginWrite.If a stream is closed or you pass an invalid argument, exceptions are thrown immediately from BeginWrite. Fehler während einer asynchronen schreibanforderung, z. B. Fehler auf dem Datenträger während der e/a-Anforderung, auf der Threadpool-Thread erfolgen, und Ausnahmen auslösen, wenn der Aufruf von EndWrite.Errors that occur during an asynchronous write request, such as a disk failure during the I/O request, occur on the thread pool thread and throw exceptions when calling EndWrite.

Gilt für:

Siehe auch