Partager via


AsyncOperation.UserSuppliedState Propriété

Définition

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