Почему этот код WebRequest работает медленно?

Я запросил 100 страниц, что все 404. Я написал

    {
    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;
}

Два запуска показывают, что это занимает 00:00: 30,7968750 и 00:00: 26,8750000. Затем я попробовал Firefox и использовать следующий код

<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>

Используя время компа и считая это было примерно 4 секунды. 4 секунды на 6,5-7,5 быстрее, чем мое приложение. Я планирую сканировать тысячи файлов, поэтому большая трудность займет 3,75 часа вместо 30 минут. Как я могу сделать этот код быстрее? Я знаю, что кто-то скажет, что Firefox кэширует изображения, но я хочу сказать: 1) ему все еще нужно проверить заголовки с удаленного сервера, чтобы узнать, обновлено ли оно (что я и хочу сделать в моем приложении) 2) Я не Получив тело, мой код должен запрашивать только заголовок. Итак, как мне решить это?

Ответы на вопрос(7)

Ваш ответ на вопрос