2011-07-07 37 views
0

我想創建一個應用程序,執行多個線程,並在該線程將有一個網站的連接。我一直在閱讀網站(因爲它不斷髮送信息)。多線程連續webresponse流,只有一個作品

問題是,只有一個線程似乎能夠繼續從網站閱讀,其他線程看起來像不能讀取流。當我設置一個斷點工作線程擊中它,但其他人不要「T。所以我查看線程總覽窗口並查看其中的其他線程以及它在「睡眠中等待或加入」的位置。它也不會出現在其中一個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); 
     } 
    } 
+0

我的問題是您的環境無法一次支持多個線程。雖然你的應用程序是多線程的,但一次只能運行一個線程,直到調度程序允許其他線程在他們等待的處理器/資源上輪到一個轉彎爲止。如果你運行/暫停運行/暫停應用程序多次,它總是運行相同的線程,其他人在等待? – Grambot

+0

您可能需要格式化。 –

+0

好吧,那麼這段代碼如何配合,可以QueueResponse()阻塞,爲什麼Sleep()呢? –

回答