J'ai une application qui télécharge des URL en utilisant threadPool dans différents threads, mais récemment j'ai lu un article (http://www.codeproject.com/KB/IP/Crawler.aspx) qui dit que HttpWebRequest.GetResponse() ne fonctionne que dans un thread et l'autre threads attend ce thread. d'abord je veux savoir est-ce vrai? Comment puis-je surveiller quel de mes threads est en train de télécharger avec son statut?Surveiller quel thread télécharge l'URL
Répondre
Je doute que HttpWebRequest.GetResponse bloquerait d'autres threads - mais vous pouvez vérifier cela facilement en utilisant des outils tels que Fiddler. Vous pouvez lancer le violoneur et lancer votre programme. La demande apparaîtra dans Fiddler dès que votre programme le fera et vous pourrez rapidement déterminer s'ils sont simultanés ou un par un.
Oui, GetResponse est un appel bloquant (vérifiez MSDN) qui peut uniquement renvoyer lorsque le serveur répond ou un délai d'attente de demande se produit. Après cela, vérifiez simplement le code d'état et utilisez GetResponseStream pour commencer à télécharger le contenu retourné. Comme ceci:
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == 200)
{
Stream content = response.GetResponseStream();
// Read the content and report the downloading progress...
...
}
Je ne pense pas qu'Ehsan s'inquiète de savoir si GetResponse bloque le thread en cours, il craint que cela ne bloque les appels GetResponse sur d'autres threads rendant impossible les téléchargements parallèles. – VinayC
- 1. Comment surveiller un thread de travail vital
- 2. quel thread un nouveau thread voit comme 'parent'
- 3. .NET SynchronizationContext - Quel thread envoie-t-il?
- 4. Comment savoir quel thread appelé une méthode
- 5. Surveiller le trafic USB
- 6. Capistrano télécharge le répertoire .git
- 7. C# WebClient télécharge seulement html partiel
- 8. surveiller l'utilisation du processeur par thread sur le périphérique mobile Windows
- 9. Comment interrompre un autre thread à partir d'un moniteur Thread
- 10. accepter l'utilisateur télécharge les meilleures pratiques!
- 11. MFC: dépannage sur quel thread est responsable d'un crash
- 12. Comment déterminer quel thread est créé à partir d'un autre?
- 13. De quel thread dois-je traiter l'événement RxTx SerialEvent.DATA_AVAILABLE?
- 14. Déterminer par programme quel thread Java contient un verrou
- 15. Comment savoir quel thread verrouille un fichier dans Java?
- 16. Quel est le meilleur moyen de fermer un thread WCF?
- 17. Surveiller les appels d'API
- 18. surveiller sms sortant
- 19. Surveiller l'activité Internet
- 20. surveiller MySQL par programme? SNMP?
- 21. Thread Performance dans Android
- 22. Comment puis-je surveiller la bande passante des applications?
- 23. Comment CMS télécharge-t-il des images?
- 24. le fichier php télécharge plus de 200mb
- 25. Est-ce que curl télécharge des ressources
- 26. CodeIgniter/Xinha ImageManager ne télécharge pas d'images
- 27. Air Flex Télécharge URLRequest maximum simultané
- 28. Méthode la plus efficace pour surveiller une file d'attente
- 29. Comment surveiller l'activité Sockets sur un ordinateur?
- 30. Quel événement dois-je surveiller pour une tâche opportune dans WPF?
Oui votre commentaire sur la réponse INSTCODE est exactement ce que je dois savoir, je suis en cours d'exécution Fiddler, mais comment puis-je être certain à ce sujet, la cause Fiddler ne montre pas quelle demande est en cours d'exécution dans le cas de time – Ehsan
Je crois que vos téléchargements prendront au moins quelques secondes - en tant que tel, vous devriez voir plusieurs requêtes simultanées dans fiddler prouvant que des requêtes parallèles sont possibles. Dans Fiddler, l'onglet statistiques vous indiquera l'heure de début et de fin de votre requête tandis que l'onglet chronologique vous montrera la ligne de temps combinée pour plusieurs requêtes (sessions appelées par fiddler) - sélectionnez plusieurs demandes de téléchargement et consultez l'onglet chronologique. – VinayC