Partager via


AsyncOperation.UserSuppliedState Propriété

Définition

Obtient ou définit un objet servant à 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 illustre l’utilisation UserSuppliedState de pour 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)
{
    AsyncOperation asyncOp = userStateToLifetime[taskId] as AsyncOperation;
    if (asyncOp != null)
    {   
        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 auront besoin d’un moyen de déterminer la tâche asynchrone qui 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 utiliserez 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é .

Attention

Le code client doit veiller à fournir une valeur unique pour la UserSuppliedState propriété. Les ID de tâche non uniques peuvent amener votre implémentation à signaler la progression et d’autres événements de manière incorrecte. Votre code doit case activée pour un ID de tâche non unique et déclencher un ArgumentException si celui-ci est détecté.

S’applique à

Voir aussi