Cette documentation est archivée et n’est pas conservée.

AsyncCompletedEventArgs, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

Fournit des données pour l'événement MethodNameCompleted.

Espace de noms : System.ComponentModel
Assembly : System (dans system.dll)

public class AsyncCompletedEventArgs : EventArgs
public class AsyncCompletedEventArgs extends EventArgs
public class AsyncCompletedEventArgs extends EventArgs

Si vous utilisez une classe qui implémente le Vue d'ensemble du modèle asynchrone basé sur des événements, la classe fournit un événement MethodNameCompleted. Si vous ajoutez une instance du délégué System.ComponentModel.AsyncCompletedEventHandler à l'événement, vous recevrez des informations sur le résultat des opérations asynchrones dans le paramètre AsyncCompletedEventArgs de la méthode de gestionnaire d'événements correspondante.

Le délégué du gestionnaire d'événements de l'application cliente peut vérifier la propriété Cancelled pour déterminer si la tâche asynchrone a été annulée.

Le délégué du gestionnaire d'événements de l'application cliente peut vérifier la propriété Error pour déterminer si une exception a eu lieu pendant l'exécution de la tâche asynchrone.

Si la classe prend en charge plusieurs méthodes asynchrones ou plusieurs appels à la même méthode asynchrone, vous pouvez identifier la tâche qui a déclenché l'événement MethodNameCompleted en vérifiant la valeur de la propriété UserState. Votre code devra suivre ces jetons, également appelés identificateurs de tâche, lorsque leurs tâches asynchrones correspondantes démarrent et se terminent.

RemarqueRemarque

L'attribut HostProtectionAttribute appliqué à cette classe a la valeur de propriété Resources suivante : SharedState. 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.

Remarques à l'attention des héritiers Les classes qui suivent le modèle asynchrone basé sur les événements peuvent déclencher des événements pour alerter des clients sur l'état des opérations asynchrones en attente. Si la classe fournit un événement MethodNameCompleted, vous pouvez utiliser AsyncCompletedEventArgs pour informer les clients du résultat des opérations asynchrones. Vous pouvez communiquer aux clients davantage d'informations sur le résultat d'une opération asynchrone qu'un AsyncCompletedEventArgs ne l'autorise. Dans ce cas, vous pouvez dériver votre propre classe de la classe AsyncCompletedEventArgs et fournir des variables d'instance privées supplémentaires et des propriétés publiques en lecture seule correspondantes. Appelez la méthode RaiseExceptionIfNecessary avant de retourner la valeur de propriété si l'opération a été annulée ou en cas d'erreur.

L'exemple de code suivant montre comment utiliser AsyncOperation pour suivre la durée de vie des opérations asynchrones. Cet exemple de code fait partie d'un exemple plus développé fourni pour la classe System.ComponentModel.AsyncOperationManager.

using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Threading;
using System.Windows.Forms;
...        // This event handler updates the ListView control when the
        // PrimeNumberCalculator raises the CalculatePrimeCompleted
        // event. The ListView item is updated with the appropriate
        // outcome of the calculation: Canceled, Error, or result.
        private void primeNumberCalculator1_CalculatePrimeCompleted(
            object sender, 
            CalculatePrimeCompletedEventArgs e)
        {
            Guid taskId = (Guid)e.UserState;

            if (e.Cancelled)
            {   
                string result = "Canceled";

                ListViewItem lvi = UpdateListViewItem(taskId, result);

                if (lvi != null)
                {
                    lvi.BackColor = Color.Pink;
                    lvi.Tag = null;
                }
            }
            else if (e.Error != null)
            {
                string result = "Error";

                ListViewItem lvi = UpdateListViewItem(taskId, result);

                if (lvi != null)
                {
                    lvi.BackColor = Color.Red;
                    lvi.ForeColor = Color.White;
                    lvi.Tag = null;
                }
            }
            else
            {   
                bool result = e.IsPrime;

                ListViewItem lvi = UpdateListViewItem(
                    taskId, 
                    result, 
                    e.FirstDivisor);

                if (lvi != null)
                {
                    lvi.BackColor = Color.LightGray;
                    lvi.Tag = null;
                }
            }
        }

import System.*;
import System.Collections.*;
import System.Collections.Specialized.*;
import System.ComponentModel.*;
import System.Data.*;
import System.Drawing.*;
import System.Threading.*;
import System.Windows.Forms.*;

...    private void primeNumberCalculator1_CalculatePrimeCompleted(Object sender,
        CalculatePrimeCompletedEventArgs e)
    {
        Guid guid = (Guid)e.get_UserState();
        if (e.get_Cancelled()) {
            String result = "Cancelled";
            ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                result);
            if (lvi != null) {
                lvi.set_BackColor(Color.get_Pink());
                lvi.set_Tag(null);
            }
        }
        else {
            if (e.get_Error() != null) {
                String result = "Error";
                ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                    result);
                if (lvi != null) {
                    lvi.set_BackColor(Color.get_Red());
                    lvi.set_ForeColor(Color.get_White());
                    lvi.set_Tag(null);
                }
            }
            else {
                boolean result = e.get_IsPrime();
                ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                    result, e.get_FirstDivisor());
                if (lvi != null) {
                    lvi.set_BackColor(Color.get_LightGray());
                    lvi.set_Tag(null);
                }
            }
        }
    } //primeNumberCalculator1_CalculatePrimeCompleted

System.Object
   System.EventArgs
    System.ComponentModel.AsyncCompletedEventArgs
       Classes dérivées

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

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

.NET Framework

Prise en charge dans : 2.0
Afficher: