Partager via


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

Définition

Débute une opération de lecture asynchrone. (Utilisez la méthode ReadAsync(Byte[], Int32, Int32) à la place.)

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginRead (byte[] array, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginRead (byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Paramètres

arraybuffer
Byte[]

Tableau d'octets dans lequel les données doivent être lues.

offset
Int32

Décalage d’octet à partir duquel commencer la lecture des données du flux.

count
Int32

Nombre maximal d'octets à lire.

asyncCallback
AsyncCallback

Rappel asynchrone optionnel à appeler lorsque la lecture est terminée.

asyncState
Object

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

Retours

Objet représentant la lecture asynchrone qui pourrait toujours être en attente.

Exceptions

La méthode a essayé de lire de façon asynchrone au delà de la fin du flux de données, 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 GZipStream en cours ne prend pas en charge l’opération de lecture.

Une opération de lecture ne peut pas être exécutée car le flux est fermé.

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 octets dans DeflateStream, GZipStream et CryptoStream.

À partir de .NET Framework 4.5, vous pouvez effectuer des opérations de lecture asynchrones à l’aide de la Stream.ReadAsync méthode . La BeginRead méthode est toujours disponible dans les versions actuelles pour prendre en charge le code hérité. Toutefois, vous pouvez implémenter plus facilement des opérations d’E/S asynchrones à l’aide des nouvelles méthodes asynchrones. Pour plus d’informations, consultez E/S de fichier asynchrone.

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. 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 lorsque l’opération d’E/S se termine.

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

Utilisez la CanRead propriété pour déterminer si l’objet actuel GZipStream 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 à