Partager via


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

Définition

Commence une lecture asynchrone à partir du NetworkStream.

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int size, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Public Overrides Function BeginRead (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 est l’emplacement en mémoire pour stocker les données lues à partir du NetworkStream.

offset
Int32

Emplacement dans buffer lequel commencer le stockage des données.

countsize
Int32

Nombre d’octets à lire à partir du NetworkStream.

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 buffer longueur du paramater.

- ou -

La size valeur est inférieure à 0.

- ou -

La size longueur est supérieure à 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 la lecture à partir du 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 AsyncCallbackBeginRead 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 à BeginRead. 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 BeginRead méthode.

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

L’opération lit autant de données que possible, jusqu’au nombre d’octets spécifié par le count paramètre.

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.

S’applique à

Voir aussi