class Program
{
private int x = 0;
static void Main(string[] args)
{
Program p = new Program();
int a, b;
ThreadPool.GetMaxThreads(out a, out b);
Console.WriteLine("{0} - {1}", a, b);
for (int y = 0; y < 20; y++)
{
WaitCallback cb = new WaitCallback(DoSomething);
ThreadPool.QueueUserWorkItem(cb, y);
}
}
public static void DoSomething(object state)
{
Console.WriteLine(state);
}
}
ほとんどの場合、20 項目を印刷します。ただし、一部しか印刷されない場合もあります。何故ですか?私は Java のバックグラウンドを持っているので、.NET ThreadPools の仕組みについて間違った思い込みをしているのではないかと思っています。