Freigeben über


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

Definition

Startet einen asynchronen Schreibvorgang in einen Datenstrom.

public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int size, 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 size, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
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
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

buffer
Byte[]

Ein Array vom Typ Byte , das die zu schreibenden NetworkStreamDaten enthält.

offset
Int32

Der Speicherort buffer , an dem die Daten gesendet werden sollen.

countsize
Int32

Die Anzahl der Bytes, die in das NetworkStreamGeschrieben werden sollen.

callback
AsyncCallback

Der Delegat AsyncCallback , der nach BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Abschluss ausgeführt wird.

state
Object

Ein Objekt, das alle zusätzlichen benutzerdefinierten Daten enthält.

Gibt zurück

Ein IAsyncResult Wert, der den asynchronen Aufruf darstellt.

Ausnahmen

Der buffer Parameter ist null.

Der offset Parameter ist kleiner als 0.

- oder -

Der offset Parameter ist größer als die Länge von buffer.

- oder -

Der size Parameter ist kleiner als 0.

- oder -

Der size Parameter ist größer als die Länge minus buffer des Werts des offset Parameters.

Die zugrunde liegende Socket Ist geschlossen.

- oder -

Fehler beim Schreiben in das Netzwerk.

- oder -

Fehler beim Zugriff auf den Socket.

Das NetworkStream ist geschlossen.

Hinweise

Von Bedeutung

Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die APM-Methoden (Begin/End) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die aufgabenbasierten Entsprechungen.

Sie können einen Rückruf übergeben, der AsyncCallback implementiert wird, um über den Abschluss des Vorgangs BeginWrite benachrichtigt zu werden. Wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abgeschlossen hat, wird der Rückruf während des Aufrufs BeginWriteinline ausgeführt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult Eigenschaft so festgelegt true , dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState Eigenschaft des IAsyncResult Zustandsobjekts, das an die BeginWrite Methode übergeben wird.

Der BeginWrite Vorgang muss durch Aufrufen der EndWrite Methode abgeschlossen werden. In der Regel wird die Methode vom bereitgestellten AsyncCallback Delegaten aufgerufen. EndWrite blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.

Hinweis

Wenn Sie eine IOExceptionEigenschaft erhalten, überprüfen Sie die InnerException Eigenschaft, um zu ermitteln, ob sie durch eine SocketException. Wenn ja, verwenden Sie die ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.

Lese- und Schreibvorgänge können gleichzeitig für eine Instanz der NetworkStream Klasse ausgeführt werden, ohne dass eine Synchronisierung erforderlich ist. Solange es einen eindeutigen Thread für die Schreibvorgänge und einen eindeutigen Thread für die Lesevorgänge gibt, gibt es keine Querinteraktionen zwischen Lese- und Schreibthreads, und es ist keine Synchronisierung erforderlich.

Gilt für:

Weitere Informationen