NetworkStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
Le NetworkStream est fermé.
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.