Я бью лимит потока? - PullRequest
       1

Я бью лимит потока?

0 голосов
/ 13 марта 2012

У меня есть следующий рабочий код для получения потока от URL:

private Stream GetDownloadStream(string url)
{
    Stream stream = null;

    AutoResetEvent downloadCompleted = new AutoResetEvent(false);
    httpRequest = (HttpWebRequest)WebRequest.Create(url);

    httpRequest.AllowReadStreamBuffering = false;
    httpRequest.BeginGetResponse(
        result =>
        {
            try
            {
                httpResponse = (HttpWebResponse)httpRequest.EndGetResponse(result);
                stream = httpResponse.GetResponseStream();
            }
            catch (WebException)
            {
                downloadCompleted.Set();
                Abort();
            }
            finally
            {
                downloadCompleted.Set();
            }
        },
        null);

    bool completed = downloadCompleted.WaitOne(15 * 1000);
    if (completed) {
        return stream;
    }
    return null;
}

Неважно, какие потоки я выбрал для воспроизведения. Он всегда возвращает поток для первых 6 запросов и возвращает ноль для семи запросов.

Я уже пытался увеличить время ожидания до 30 секунд, но при седьмом запросе он не будет введен при обратном вызове httpRequest.BeginGetResponse.

Есть идеи, почему?

1 Ответ

2 голосов
/ 13 марта 2012

Вы превышаете ограничение на количество одновременных веб-запросов (которое составляет 6).

Попробуйте закрыть поток, когда вы закончите с ним, или поменять свои запросы, чтобы не пытатьсясделать слишком много сразу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...