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.
Commence une écriture asynchrone dans un flux.
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
Paramètres
- buffer
- Byte[]
Tableau de type Byte qui contient les données à écrire dans le NetworkStream.
- offset
- Int32
Emplacement dans buffer lequel commencer l’envoi des données.
- countsize
- Int32
Nombre d’octets à écrire dans le NetworkStream.
- callback
- AsyncCallback
Délégué AsyncCallback exécuté une fois BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) terminé.
- state
- Object
Objet qui contient des données supplémentaires définies par l’utilisateur.
Retours
Qui IAsyncResult représente l’appel asynchrone.
Exceptions
Le buffer paramètre est null.
Le offset paramètre est inférieur à 0.
- ou -
Le offset paramètre est supérieur à la longueur de buffer.
- ou -
Le size paramètre est inférieur à 0.
- ou -
Le size paramètre est supérieur à la longueur de buffer moins la valeur du offset paramètre.
Le sous-jacent Socket est fermé.
- ou -
Une défaillance s’est produite lors de l’écriture sur le réseau.
- ou -
Une erreur s’est produite lors de l’accès au socket.
La NetworkStream fermeture est terminée.
Remarques
Important
Il s’agit d’une API de compatibilité. Nous vous déconseillons d’utiliser les méthodes APM (Begin/End) pour le nouveau développement. Utilisez plutôt les équivalents basés sur des tâches.
Vous pouvez passer un rappel qui s’implémente AsyncCallbackBeginWrite pour être informé de l’achèvement de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de façon synchrone, le rappel est exécuté en ligne, pendant l’appel à BeginWrite. Dans ce cas, la CompletedSynchronously propriété sur le retour IAsyncResult sera définie pour true indiquer que la méthode s’est terminée de façon synchrone. Utilisez la AsyncState propriété de l’objet IAsyncResult d’état passé à la BeginWrite méthode.
L’opération BeginWrite doit être effectué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.
Note
Si vous recevez un IOException, vérifiez la InnerException propriété pour déterminer si elle a été provoquée par un SocketException. Dans ce 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 une instance de la NetworkStream classe sans avoir besoin de 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.