Partager via


LogRecordSequence.BeginFlush(SequenceNumber, AsyncCallback, Object) Méthode

Définition

Commence une opération de vidage asynchrone, en utilisant l'espace précédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

public:
 virtual IAsyncResult ^ BeginFlush(System::IO::Log::SequenceNumber sequenceNumber, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginFlush (System.IO.Log.SequenceNumber sequenceNumber, AsyncCallback callback, object state);
abstract member BeginFlush : System.IO.Log.SequenceNumber * AsyncCallback * obj -> IAsyncResult
override this.BeginFlush : System.IO.Log.SequenceNumber * AsyncCallback * obj -> IAsyncResult
Public Function BeginFlush (sequenceNumber As SequenceNumber, callback As AsyncCallback, state As Object) As IAsyncResult

Paramètres

sequenceNumber
SequenceNumber

Le numéro de séquence de l'enregistrement le plus récent doit être écrit. Si SequenceNumber n'est pas valide, alors tous les enregistrements doivent être écrits.

callback
AsyncCallback

Rappel asynchrone facultatif à appeler lorsque le vidage est terminé.

state
Object

Objet fourni par l'utilisateur qui distingue cette requête de vidage asynchrone particulière des autres requêtes.

Retours

Objet IAsyncResult qui représente l'opération de vidage asynchrone qui pourrait être toujours en attente.

Implémente

Exceptions

sequenceNumber n'est pas valide pour cette séquence.

sequenceNumber n'est pas compris entre le numéro de base et le dernier numéro de la séquence.

La requête n'a pas pu être exécutée en raison d'une exception d'E/S inattendue.

Le journal spécifié n'a pas d'étendues. Une ou plusieurs étendues doivent être créées avant qu'une séquence d'enregistrement puisse être utilisée.

L'opération ne peut pas être effectuée car la séquence d'enregistrement a été ouverte en lecture seule.

La méthode a été appelée après la suppression de la séquence.

La mémoire disponible n'est pas suffisante pour continuer l'exécution du programme.

La séquence d'enregistrement est complète.

L'accès à la séquence de journal spécifiée est refusé par le système d'exploitation.

Remarques

Vous devez passer l'objet IAsyncResult retourné par la méthode actuelle à la méthode EndFlush pour vous assurer de la fin du vidage et de la libération appropriée des ressources. Si une erreur se produit pendant un vidage asynchrone, une exception n'est pas levée tant que la méthode EndFlush n'est pas appelée avec le IAsyncResult retourné par cette méthode.

L'appel de cette méthode permet de vous assurer que tous les enregistrements ajoutés à la LogRecordSequence sont écrits de façon durable.

Si une séquence d’enregistrement a été supprimée ou si vous passez un argument non valide, les exceptions sont immédiatement levées dans cette opération. Lorsque des erreurs se sont produites pendant une requête de vidage asynchrone, par exemple, une défaillance du disque pendant la requête d'E/S, les exceptions sont levées lorsque la méthode EndFlush est appelée.

S’applique à