Assembly : System (dans system.dll)
SyntaxePublic Class AsyncCompletedEventArgs Inherits EventArgs
Dim instance As AsyncCompletedEventArgs
public class AsyncCompletedEventArgs : EventArgs
public ref class AsyncCompletedEventArgs : public EventArgs
public class AsyncCompletedEventArgs extends EventArgs
public class AsyncCompletedEventArgs extends EventArgs
NotesSi 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.
Remarque |
|---|
| 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. |
ExempleL'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.
Imports System Imports System.Collections Imports System.Collections.Specialized Imports System.ComponentModel Imports System.Drawing Imports System.Globalization Imports System.Threading Imports 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 Sub primeNumberCalculator1_CalculatePrimeCompleted( _ ByVal sender As Object, _ ByVal e As CalculatePrimeCompletedEventArgs) _ Handles primeNumberCalculator1.CalculatePrimeCompleted Dim taskId As Guid = CType(e.UserState, Guid) If e.Cancelled Then Dim result As String = "Canceled" Dim lvi As ListViewItem = UpdateListViewItem( _ taskId, _ result) If Not (lvi Is Nothing) Then lvi.BackColor = Color.Pink lvi.Tag = Nothing End If ElseIf e.Error IsNot Nothing Then Dim result As String = "Error" Dim lvi As ListViewItem = UpdateListViewItem( _ taskId, result) If Not (lvi Is Nothing) Then lvi.BackColor = Color.Red lvi.ForeColor = Color.White lvi.Tag = Nothing End If Else Dim result As Boolean = e.IsPrime Dim lvi As ListViewItem = UpdateListViewItem( _ taskId, _ result, _ e.FirstDivisor) If Not (lvi Is Nothing) Then lvi.BackColor = Color.LightGray lvi.Tag = Nothing End If End If End Sub
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
Sécurité des threads
Plates-formesWindows 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.
Remarque
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ