Partager via


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

Définition

Débute une opération de lecture asynchrone. (Utilisez ReadAsync à la place.)

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, 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 count, AsyncCallback callback, object state);
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

Paramètres

buffer
Byte[]

Mémoire tampon dans laquelle lire les données.buffer

offset
Int32

Dans buffer, décalage d'octet auquel commencer l'écriture des données lues dans le flux.

count
Int32

Nombre maximal d'octets à lire.

callback
AsyncCallback

Rappel asynchrone facultatif, à appeler quand la lecture est terminée.

state
Object

Objet fourni par l'utilisateur qui distingue cette requête de lecture asynchrone des autres requêtes.

Retours

Élément IAsyncResult représentant la lecture asynchrone, qui peut être encore en attente.

Exceptions

Tentative de lecture asynchrone au-delà de la fin du flux, ou une erreur disque s’est produite.

Un ou plusieurs arguments ne sont pas valides.

Des méthodes ont été appelées après la fermeture du flux.

L’implémentation du Stream en cours ne prend pas en charge l’opération de lecture.

Remarques

Important

À compter de .NET 6, cette méthode peut ne pas lire autant d’octets que demandé. Pour plus d’informations, consultez Lectures partielles et zéro octet dans DeflateStream, GZipStream et CryptoStream.

Dans .NET Framework 4 et les versions antérieures, on doit utiliser des méthodes telles que BeginRead et EndRead pour implémenter les opérations d'E/S asynchrones. Ces méthodes sont toujours disponibles dans les versions actuelles pour prendre en charge le code hérité ; Toutefois, les nouvelles méthodes asynchrones, telles que ReadAsync, WriteAsync, CopyToAsyncet FlushAsync, vous aident à implémenter plus facilement des opérations d’E/S asynchrones.

Transmettez la IAsyncResult valeur de retour à la EndRead méthode du flux pour déterminer le nombre d’octets lus et libérer les ressources du système d’exploitation utilisées pour la lecture. EndRead doit être appelé une fois pour chaque appel à BeginRead. Pour ce faire, utilisez le même code que celui qui a appelé BeginRead ou dans un rappel passé à BeginRead.

La position actuelle dans le flux est mise à jour lorsque la lecture ou l’écriture asynchrone est émise, et non à la fin de l’opération d’E/S.

Plusieurs requêtes asynchrones simultanées rendent l’ordre d’achèvement de la demande incertain.

Utilisez la CanRead propriété pour déterminer si l’instance actuelle prend en charge la lecture.

Si un flux est fermé ou si vous passez un argument non valide, des exceptions sont levées immédiatement à partir de BeginRead. Les erreurs qui se produisent lors d’une demande de lecture asynchrone, telles qu’une défaillance de disque pendant la demande d’E/S, se produisent sur le thread du pool de threads et lèvent des exceptions lors de l’appel EndReadde .

S’applique à