2009-07-17 8 views
2

J'ai un contrôle personnalisé qui effectue des appels de services Web asynchrones. Je me demande si je peux disposer du contrôle pendant qu'un appel asynchrone n'est pas terminé: je fais l'appel, et avant que j'obtienne la réponse je dispose de l'objet.Compact Framework 2.0: est-il possible d'interrompre un appel de services Web asynchrone?

Que dois-je faire avant de recevoir la réponse pour éliminer le contrôle personnalisé en toute sécurité?

Merci!

+0

Veuillez indiquer le code que vous utilisez pour appeler le service Web asynchrone. Il y a au moins deux façons d'appeler un service asynchrone, et si vous pouvez annuler dépend de la façon dont vous avez utilisé. –

Répondre

1

Utilisez la méthode CancelAsync(). Vérifiez this article.

+0

Notez que cela annule uniquement le côté client de la demande; le côté serveur continuera juste (mais la réponse ira dans nirvana). –

0

Ce n'est généralement pas une bonne idée d'abandonner un autre thread (il est plus coûteux d'avoir du CPU que de simplement le laisser finir).

Ce que vous voulez probablement faire, c'est dans votre méthode Dispose() que vous définissez un drapeau qui indique que le contrôle est éliminé. Puis, lorsque votre requête est terminée, vérifiez le drapeau et ignorez le résultat de votre requête si votre requête a été abandonnée.

Si vous avez besoin d'aide spécifique, publiez un peu de votre code et nous vous aiderons.

Questions connexes