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);
}
}
我的問題是您的環境無法一次支持多個線程。雖然你的應用程序是多線程的,但一次只能運行一個線程,直到調度程序允許其他線程在他們等待的處理器/資源上輪到一個轉彎爲止。如果你運行/暫停運行/暫停應用程序多次,它總是運行相同的線程,其他人在等待? – Grambot
您可能需要格式化。 –
好吧,那麼這段代碼如何配合,可以QueueResponse()阻塞,爲什麼Sleep()呢? –