Pourquoi ce code WebRequest est-il lent?

J'ai demandé 100 pages que tous les 404. J'ai écrit

    {
    var s = DateTime.Now;
    for(int i=0; i < 100;i++)
        DL.CheckExist("http://google.com/lol" + i.ToString() + ".jpg");
    var e = DateTime.Now;
    var d = e-s;
        d=d;
        Console.WriteLine(d);
    }

static public bool CheckExist(string url)
{
    HttpWebRequest wreq = null;
    HttpWebResponse wresp = null;
    bool ret = false;

    try
    {
        wreq = (HttpWebRequest)WebRequest.Create(url);
        wreq.KeepAlive = true;
        wreq.Method = "HEAD";
        wresp = (HttpWebResponse)wreq.GetResponse();
        ret = true;
    }
    catch (System.Net.WebException)
    {
    }
    finally
    {
        if (wresp != null)
            wresp.Close();
    }
    return ret;
}

Deux pistes de montrer qu'il prend 00:00:30.7968750 et 00:00:26.8750000. Ensuite, j'ai essayé firefox et utiliser le code suivant

<html>
<body>
<script type="text/javascript">
for(var i=0; i<100; i++)
    document.write("<img src=http://google.com/lol" + i + ".jpg><br>");
</script>

</body>
</html>

À l'aide de mon ordi le temps de comptage et il était à peu près 4 secondes. 4 secondes est de 6,5-7,5 plus rapide que mon application. J'ai l'intention de parcourir des milliers de fichiers afin de prendre 3,75 heures au lieu de 30 minutes serait un gros problème. Comment puis-je rendre ce code plus rapide? Je sais que quelqu'un va dire firefox met en cache les images, mais j'ai envie de dire que 1) il a encore besoin de vérifier les en-têtes du serveur distant pour voir si il a été mis à jour (qui est ce que je veux que mon application pour le faire) 2) je ne suis pas de recevoir le corps, mon code ne devrait être demander l'en-tête. Alors, comment puis-je résoudre ce problème?

source d'informationauteur