Je dois pouvoir annuler les appels asynchrones effectués sur mon service Web. Une solution que j'ai est d'utiliser gérer mes propres threads, et utiliser des méthodes synchrones à partir du client SOAP. Cela fonctionne très bien et nécessite une gestion plus fine du fil.Annuler les appels de service Web asynchrones
Si j'utilisé l'un de ces deux motifs fournis par l'ajout d'une référence de service Web, par exemple:
var Client = new ASL_WS.SvcSoapClient()
IAsyncResult result = Client.BeginAuthenticateUser(Email, Password, new AsyncCallback(AuthCompleted));
ou
var Client = new ASL_WS.SvcSoapClient()
Client.AuthenticateUserCompleted += AuthCompleted;
Client.AuthenticateUserAsync(Email, Passsword);
font l'une de ces deux modèles me donner un moyen d'annuler la demande? Un cas d'utilisation peut être: un utilisateur se connecte mais souhaite annuler avant la fin de l'appel d'authentification.
Bien sûr, je pourrais implémenter cela différemment en modifiant le asyncState passé à ces appels, et en le paramétrant pour désactiver la mise à jour de l'interface utilisateur, mais ce n'est pas ce que je cherche. Pourrais-je simplement annuler toutes les opérations en cours? Est-ce que Client.Abort() annule de telles opérations? Que se passe-t-il si de nombreuses demandes asynchrones sont annulées? Y a-t-il d'autres méthodes d'API qui peuvent le faire?
sens. Il m'a fallu un certain temps pour comprendre ce que le code faisait, mais c'est assez évident maintenant. J'ai fini par faire quelque chose de similaire. Merci. – Candide