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 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é.