CryptoStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Commence une opération d’écriture asynchrone. (Envisagez d’utiliser WriteAsync à la place.)
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Paramètres
- buffer
- Byte[]
Mémoire tampon à partir de laquelle écrire des données.
- offset
- Int32
Décalage d’octet à buffer partir duquel commencer l’écriture.
- count
- Int32
Nombre maximal d’octets à écrire.
- callback
- AsyncCallback
Rappel asynchrone facultatif à appeler lorsque l’écriture est terminée.
- state
- Object
Objet fourni par l’utilisateur qui distingue cette demande d’écriture asynchrone particulière d’autres requêtes.
Retours
Qui IAsyncResult représente l’écriture asynchrone, qui peut toujours être en attente.
Exceptions
Tentative d’écriture asynchrone au-delà de la fin du flux, ou une erreur de disque s’est produite.
Un ou plusieurs arguments ne sont pas valides.
Les méthodes ont été appelées après la fermeture du flux.
L’implémentation actuelle Stream ne prend pas en charge l’opération d’écriture.
Remarques
Dans .NET Framework 4 et versions antérieures, vous devez utiliser des méthodes telles que BeginWrite et EndWrite implémenter des 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 les opérations d’E/S asynchrones.
Transmettez le IAsyncResult retour de la méthode actuelle pour EndWrite vous assurer que l’écriture se termine et libère les ressources de manière appropriée.
EndWrite doit être appelé une fois pour chaque appel à BeginWrite. Pour ce faire, vous pouvez utiliser le même code que celui qui a appelé BeginWrite ou dans un rappel passé à BeginWrite. Si une erreur se produit pendant une écriture asynchrone, aucune exception ne sera levée tant qu’elle EndWrite n’est pas appelée avec le IAsyncResult retour de cette méthode.
Si un flux est accessible en écriture, l’écriture à la fin du flux développe le flux.
La position actuelle dans le flux est mise à jour lorsque vous émettez la lecture ou l’écriture asynchrone, et non lorsque l’opération d’E/S se termine. Plusieurs requêtes asynchrones simultanées rendent l’ordre de saisie semi-automatique de la demande incertain.
Utilisez la CanWrite propriété pour déterminer si l’instance actuelle prend en charge l’écriture.
Si un flux est fermé ou si vous passez un argument non valide, les exceptions sont levées immédiatement à partir de BeginWrite. Les erreurs qui se produisent pendant une demande d’écriture asynchrone, comme une défaillance de disque pendant la requête d’E/S, se produisent sur le thread du pool de threads et lèvent des exceptions lors de l’appel EndWrite.