0

私が次のコードを持っているとしましょう:

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
 );
}

コンソールにManagedThreadIdを書き込むときに、かなり多くのスレッドが表示されることを期待しています。もちろん、私は間違っています:)。私は通常、2つの異なるスレッドIDと、たまに3つのスレッドIDしか表示しません。

なぜこの振る舞い?私は何が欠けていますか?

4

1 に答える 1

3

接続制限に達していると思います。

于 2009-09-22T16:06:40.970 に答える