Je n'ai pas été en mesure de trouver un moyen d'annuler/terminer une opération de lecture asynchrone après HttpWebRequest réussie. Il n'y a aucun moyen de définir le délai, ThreadPool.RegisterWaitForSingleObject ne fonctionne pas aussi. Et la fermeture du socket sous-jacent n'est pas non plus une option car ni HttpWebRequest/Reponse ne lui donne accès..NET annuler le flux BeginRead
Edit:
Malheureusement, cette approche qui fonctionne seulement pour suggestet de Sunny HttpWebRequest.BeginGetResponse. Pour le flux que vous obtenez après GetResponseStream() pour une raison quelconque, RegisterWaitForSingleObject ne fonctionne pas - le callback n'est jamais appelé. La situation est la suivante: J'ai une application qui utilise HttpGetRequest. Il est construit en utilisant l'exemple MSDN par défaut pour async httpwebrequest. Obtenir une réponse fonctionne comme un charme. Mais en de rares occasions, le serveur auquel se connecte mon httpwebrequest oublie de fermer le socket. Je suis donc accroché à une lecture infinie de BeginRead.
Dans quelques rares occasions, l'autre serveur oublie