Многопоточный непрерывный поток веб-ответов, работает только один - PullRequest
0 голосов
/ 07 июля 2011

Я пытаюсь создать приложение, которое выполняет несколько потоков, и в этом потоке будет соединение с веб-сайтом.Я продолжаю читать веб-сайт (так как он продолжает отправлять информацию).

Проблема в том, что, кажется, только один поток может продолжать чтение с веб-сайта, другие потоки выглядят так, как будто он не может прочитать потокКогда я устанавливаю точку останова, рабочие потоки достигают ее, а другие нет.Поэтому я смотрю в окне обзора потоков и вижу там другой поток, который находится в состоянии ожидания, присоединения или ожидания.Это также не входит в один из блоков try catch.

Я не знаю, как решить эту проблему, заранее спасибо за вашу помощь.

    HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(domain);
    request.Credentials = new NetworkCredential(Username, Password);

    HttpWebResponse response = (HttpWebResponse) request.GetResponse();
    using (response)
    {
      Stream resStream = response.GetResponseStream();
      using (resStream)
      {
        int count;
        do
        {
          count = resStream.Read(buf, 0, buf.Length);
          // make sure we read some data);
          if (count != 0)
          {
            string tempString = Encoding.ASCII.GetString(buf, 0, count);
            QueueResponse(tempString);
          }
          catch (Exception e)
          {
            Console.WriteLine("Exception occured");
          }
          Thread.Sleep(1000);
        } while (count > 0); 
      }
    }

1 Ответ

1 голос
/ 07 июля 2011

На ум приходят две вещи, которые вы можете проверить:

  1. Возможно, веб-сайт ограничивает количество одновременных запросов на ресурс, или
  2. Возможно, вы достиглиограничение соединения, установленное ServicePointManager (см. Попытка запустить несколько HTTP-запросов параллельно, но ограничено Windows (реестр) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...