AsyncOperation.UserSuppliedState Propriété
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.
Obtient ou définit un objet utilisé pour identifier de manière unique une opération asynchrone.
public:
property System::Object ^ UserSuppliedState { System::Object ^ get(); };
public object UserSuppliedState { get; }
public object? UserSuppliedState { get; }
member this.UserSuppliedState : obj
Public ReadOnly Property UserSuppliedState As Object
Valeur de propriété
Objet d’état passé à l’appel de méthode asynchrone.
Exemples
L’exemple de code suivant montre comment UserSuppliedState suivre la durée de vie des opérations asynchrones. Cet exemple de code fait partie d’un exemple plus grand fourni pour la System.ComponentModel.AsyncOperationManager classe.
// This method cancels a pending asynchronous operation.
public void CancelAsync(object taskId)
{
if (userStateToLifetime[taskId] is AsyncOperation)
{
lock (userStateToLifetime.SyncRoot)
{
userStateToLifetime.Remove(taskId);
}
}
}
' This method cancels a pending asynchronous operation.
Public Sub CancelAsync(ByVal taskId As Object)
Dim obj As Object = userStateToLifetime(taskId)
If (obj IsNot Nothing) Then
SyncLock userStateToLifetime.SyncRoot
userStateToLifetime.Remove(taskId)
End SyncLock
End If
End Sub
Remarques
Si votre classe prend en charge plusieurs méthodes asynchrones ou plusieurs appels d’une seule méthode asynchrone, les clients ont besoin d’un moyen de déterminer quelle tâche asynchrone déclenche des événements. Votre MethodNameAsync méthode doit prendre un paramètre de type Object qui servira d’ID de tâche. Vous allez utiliser cet ID de tâche lorsque vous appelez la AsyncOperationManager.CreateOperationméthode , et cela associera l’ID de tâche du client à un appel particulier de votre opération asynchrone. Cet ID de tâche est mis à la disposition de votre implémentation via la UserSuppliedState propriété.
Avertissement
Le code client doit être prudent pour fournir une valeur unique pour la UserSuppliedState propriété. Les ID de tâche non uniques peuvent entraîner l’état de progression de votre implémentation et d’autres événements de manière incorrecte. Votre code doit rechercher un ID de tâche non unique et déclencher une ArgumentException demande si un id de tâche est détecté.
S’applique à
Voir aussi
- AsyncOperationManager
- Bonnes pratiques de threading managé
- Vue d’ensemble du modèle asynchrone basé sur les événements