Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

FileStream.BeginRead, méthode

Débute une lecture asynchrone.

Espace de noms :  System.IO
Assembly :  mscorlib (dans mscorlib.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public override IAsyncResult BeginRead(
	byte[] array,
	int offset,
	int numBytes,
	AsyncCallback userCallback,
	Object stateObject
)

Paramètres

array
Type : System.Byte[]
Mémoire tampon dans laquelle lire les données.
offset
Type : System.Int32
Offset d'octet dans array à partir duquel commencer la lecture.
numBytes
Type : System.Int32
Nombre maximal d'octets à lire.
userCallback
Type : System.AsyncCallback
Méthode à appeler lorsque l'opération de lecture asynchrone est terminée.
stateObject
Type : System.Object
Objet fourni par l'utilisateur qui distingue cette requête de lecture asynchrone des autres requêtes.

Valeur de retour

Type : System.IAsyncResult
Objet qui fait référence à la lecture asynchrone.

ExceptionCondition
ArgumentException

La longueur du tableau moins offset est inférieure à numBytes.

ArgumentNullException

array est null.

ArgumentOutOfRangeException

offset ou numBytes est négatif.

IOException

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

EndRead doit être appelée une fois précisément pour chaque appel à BeginRead. L'impossibilité de terminer un processus de lecture avant de commencer une autre lecture peut provoquer un comportement indésirable tel qu'un interblocage.

FileStream fournit deux modes d'action différents : E/S synchrone et E/S asynchrone. Lorsque les deux modes peuvent être utilisés, les ressources sous-jacentes du système d'exploitation peuvent autoriser l'accès à un seul d'entre eux. Par défaut, FileStream ouvre le handle du système d'exploitation de manière synchrone. Sous Windows, cela ralentit les méthodes asynchrones. Si des méthodes asynchrones sont utilisées, utilisez le constructeur FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean).

RemarqueRemarque

Utilisez la propriété CanRead pour déterminer si l'instance actuelle prend en charge la lecture. Pour plus d'informations, consultez CanRead.

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 requête de lecture asynchrone, telles qu'un problème de disque pendant la requête d'E/S, se produisent sur le thread Threadpool et deviennent visibles lors d'un appel à EndRead.

EndRead doit être appelé avec ce IAsyncResult pour connaître le nombre d'octets ayant été lus.

De multiples requêtes asynchrones simultanées rendent l'ordre d'exécution des requêtes incertain.

Pour obtenir la liste des tâches d'E/S courantes, consultez Tâches d'E/S courantes.

RemarqueRemarque

L'attribut HostProtectionAttribute appliqué à ce type ou membre a la valeur de propriété Resources suivante : ExternalThreading. HostProtectionAttribute n'affecte pas les applications bureautiques (qui sont généralement démarrées en double-cliquant sur une icône, en tapant une commande ou en entrant une URL dans un navigateur). Pour plus d'informations, consultez la classe HostProtectionAttribute ou Attributs de programmation et de protection des hôtes SQL Server.

Cet exemple de code fait partie d'un exemple plus développé fourni pour le constructeur FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean).


static void EndWriteCallback(IAsyncResult asyncResult)
{
    State tempState = (State)asyncResult.AsyncState;
    FileStream fStream = tempState.FStream;
    fStream.EndWrite(asyncResult);

    // Asynchronously read back the written data.
    fStream.Position = 0;
    asyncResult = fStream.BeginRead(
        tempState.ReadArray, 0 , tempState.ReadArray.Length, 
        new AsyncCallback(EndReadCallback), tempState);

    // Concurrently do other work, such as 
    // logging the write operation.
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

Afficher:
© 2014 Microsoft