Partager via


NetworkStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Méthode

Définition

Démarre une écriture asynchrone dans un flux.

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

Paramètres

buffer
Byte[]

Tableau de type Byte qui contient les données à écrire dans NetworkStream.

offset
Int32

Emplacement de buffer auquel commencer l'envoi des données.

sizecount
Int32

Nombre d'octets à écrire dans NetworkStream.

callback
AsyncCallback

Délégué AsyncCallback exécuté lorsque BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) se termine.

state
Object

Objet contenant toutes les données supplémentaires définies par l'utilisateur.

Retours

IAsyncResult qui représente l'appel asynchrone.

Exceptions

Le paramètre buffer a la valeur null.

Le paramètre offset est inférieur à 0.

- ou -

Le paramètre offset est supérieur à la longueur de buffer.

- ou -

Le paramètre size est inférieur à 0.

- ou -

Le paramètre size est supérieur à la longueur de buffer moins la valeur du paramètre offset.

Le Socket sous-jacent est fermé.

- ou -

Une erreur s'est produite pendant l'écriture sur le réseau.

- ou -

Une erreur s’est produite pendant l’accès au socket.

Remarques

Important

Il s’agit d’une API de compatibilité. Nous vous déconseillons d’utiliser les méthodes APM (Begin/End) pour les nouveaux développements. Utilisez plutôt les équivalents basés sur les tâches.

Vous pouvez passer un rappel qui s’implémente AsyncCallbackBeginWrite à afin d’être informé de la fin de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de manière synchrone, le rappel sera exécuté en ligne, pendant l’appel à BeginWrite. Dans ce cas, la CompletedSynchronously propriété sur le retourné IAsyncResult sera définie sur pour true indiquer que la méthode s’est terminée de manière synchrone. Utilisez la AsyncState propriété de IAsyncResult pour obtenir l’objet d’état passé à la BeginWrite méthode .

L’opération BeginWrite doit être terminée en appelant la EndWrite méthode . En règle générale, la méthode est appelée par le délégué fourni AsyncCallback . EndWrite bloque le thread appelant jusqu’à ce que l’opération soit terminée.

Notes

Si vous recevez un IOException, case activée la InnerException propriété pour déterminer si elle a été provoquée par un SocketException. Si c’est le cas, utilisez la ErrorCode propriété pour obtenir le code d’erreur spécifique.

Les opérations de lecture et d’écriture peuvent être effectuées simultanément sur un instance de la NetworkStream classe sans avoir besoin d’une synchronisation. Tant qu’il existe un thread unique pour les opérations d’écriture et un thread unique pour les opérations de lecture, il n’y aura pas d’interférence croisée entre les threads de lecture et d’écriture et aucune synchronisation n’est requise.

S’applique à

Voir aussi