.net 异步HttpWebRequest-线程数
假设我有以下代码:.net 异步HttpWebRequest-线程数,.net,multithreading,httpwebrequest,iasyncresult,.net,Multithreading,Httpwebrequest,Iasyncresult,假设我有以下代码: ThreadPool.SetMinThreads(100, 100); for (int i = 0; i < 100; i++) { var request = WebRequest.Create(url); request.BeginGetResponse(ar => { //inside AsynchCallBack method for request.BeginGetResponse() var response = (HttpWeb
ThreadPool.SetMinThreads(100, 100);
for (int i = 0; i < 100; i++)
{
var request = WebRequest.Create(url);
request.BeginGetResponse(ar =>
{
//inside AsynchCallBack method for request.BeginGetResponse()
var response = (HttpWebResponse)request.EndGetResponse(ar);
string html;
using (var receiveStream = response.GetResponseStream())
using (var readStream = new StreamReader(receiveStream
, Encoding.UTF8))
{
html = readStream.ReadToEnd();
}
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
}, null
);
}
ThreadPool.SetMinThreads(100100);
对于(int i=0;i<100;i++)
{
var request=WebRequest.Create(url);
request.BeginGetResponse(ar=>
{
//request.BeginGetResponse()的内部AsynchCallBack方法
var response=(HttpWebResponse)request.EndGetResponse(ar);
字符串html;
使用(var receiveStream=response.GetResponseStream())
使用(var readStream=newstreamreader(receiveStream
,Encoding.UTF8))
{
html=readStream.ReadToEnd();
}
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
},空
);
}
在向控制台写入ManagedThreadId时,我希望看到相当多的线程—当然我错了:)。我通常只看到2个不同的线程ID,偶尔会看到3个线程ID
为什么会有这种行为?我错过了什么?我想你击中了。我想你击中了。哇-太快了:)。非常感谢。哇-太快了:)。非常感谢你。