L'abandon d'un client web.DownloadFileAsync opération

Quelle est la meilleure façon d'annuler un DownloadFileAsync fonctionnement en toute sécurité?

J'ai un thread en arrière-plan (le travailleur) qui lance le téléchargement et la gestion d'autres aspects de celui-ci et que j'arrive à la fin quand je vois que le fil est CancellationPending == true. Après le coup d'envoi de la télécharger, le fil va s'asseoir et de tourner jusqu'à ce que le téléchargement est terminé, ou que le fil est annulée.

Si le thread est annulé, je veux annuler le téléchargement. Est-il une norme de langage pour le faire? J'ai essayé CancelAsync, mais j'obtiens un WebException d'elle (avorté). Je ne suis pas sûr que c'est un moyen propre de faire de l'annuler.

Grâce.

Edit: la première exception est l'objet et de l'jetés l'un sur le flux interne (pile):

System.dll!Système.Net.Les Sockets.NetworkStream.EndRead(Système D'.IAsyncResult asyncResult)
Système.dll!Système.Net.PooledStream.EndRead(Système D'.IAsyncResult asyncResult)

InformationsquelleAutor Robinson | 2012-04-26