Partager via


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

Définition

Commence une opération de lecture asynchrone. (Envisagez d’utiliser ReadAsync(Byte[], Int32, Int32, CancellationToken) à 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);
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.

offset
Int32

Décalage d’octet dans buffer lequel commencer l’écriture de données lues à partir du flux.

count
Int32

Nombre maximal d’octets à lire.

callback
AsyncCallback

Rappel asynchrone facultatif à appeler une fois la lecture terminée.

state
Object

Objet fourni par l’utilisateur qui distingue cette demande de lecture asynchrone particulière d’autres requêtes.

Retours

Objet qui représente la lecture asynchrone, qui peut toujours être en attente.

Exceptions

buffer a la valeur null.

offset ou count est négatif.

Tentative de lecture asynchrone au-delà de la fin du flux.

La longueur de la mémoire tampon moins offset est inférieure à count.

Le flux actuel ne prend pas en charge l’opération de lecture.

Remarques

Dans .NET Framework 4 et versions antérieures, vous devez utiliser des méthodes telles que BeginRead et EndRead implémenter des opérations de fichier asynchrones. Ces méthodes sont toujours disponibles dans .NET Framework 4.5 pour prendre en charge le code hérité ; Toutefois, les nouvelles méthodes asynchrones, telles que ReadAsync, WriteAsyncet FlushAsync, vous aident à implémenter plus facilement les opérations de fichier asynchrones.

EndWrite doit être appelé exactement une fois pour chaque appel à BeginRead. L’échec de la fin d’un processus de lecture avant de commencer une autre lecture peut entraîner un comportement indésirable tel que l’interblocage.

Note

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

EndRead doit être appelé avec cela IAsyncResult pour savoir combien d’octets ont été lus.

S’applique à