Interface IAsyncResult
L'interface IAsyncResult est utilisée pour surveiller et gérer l'opération asynchrone. Elle est retournée à partir de l'opération Commencer et passée à l'opération Terminer pour mettre le début et la fin en corrélation. AsyncResult est passé au rappel si celui-ci est spécifié comme faisant partie de l'opération Commencer. Le code suivant illustre les propriétés sur l'interface IAsyncResult qui peut être utilisée pour surveiller l'état de l'opération asynchrone et obtenir l'objet d'état asynchrone éventuellement passé dans l'opération Commencer :
public interface IAsyncResult
{
Object AsyncState { get; }
WaitHandle AsyncWaitHandle { get; }
bool CompletedSynchronously { get; }
bool IsCompleted { get; }
}
AsyncState
Retourne l'objet qui a été fourni comme dernier paramètre dans le cadre de l'appel de méthode de l'opération Commencer.
AsyncWaitHandle
La propriété AsyncWaitHandle retourne WaitHandle qui peut être utilisé pour effectuer WaitHandle.WaitOne ou WaitAny ou WaitAll.
Remarque L'objet qui implémente IAsyncResult n'a pas besoin de créer WaitHandle jusqu'à ce que la propriété AsyncWaitHandle soit lue ; l'horaire est laissé à la discrétion du responsable de l'implémentation. Si le responsable de l'implémentation crée WaitHandle, il lui incombe de le signaler pour mettre fin à l'attente au moment opportun. Par exemple, AsyncResult met fin à l'attente de la part de l'appelant lorsqu'une méthode appelée de façon asynchrone retourne des résultats. Une fois créé, WaitHandle doit rester actif jusqu'à ce que l'utilisateur appelle la méthode qui met fin à l'opération asynchrone. À ce moment, l'objet qui se trouve derrière AsyncWaitHandle peut être éliminé.
CompletedSynchronously
La valeur true sera affectée à la propriété CompletedSynchronously si l'appel de l'opération Commencer est achevé de manière synchrone.
IsCompleted
La valeur true sera affectée à la propriété IsCompleted dès que le serveur aura terminé le traitement de l'appel.
Voir aussi
Vue d'ensemble du modèle de design asynchrone | Signatures de méthode asynchrones | Délégué AsyncCallback pour les opérations asynchrones | Programmation asynchrone