簡単なコンソール アプリケーション (デバッグ モード) を書きましょう。
static void Main(string[] args)
{
Process p = Process.GetCurrentProcess();
IList<Thread> threads = new List<Thread>();
Console.WriteLine(p.Threads.Count);
for(int i=0;i<30;i++)
{
Thread t = new Thread(Test);
Console.WriteLine("Before start: {0}", p.Threads.Count);
t.Start();
Console.WriteLine("After start: {0}", p.Threads.Count);
}
Console.WriteLine(Process.GetCurrentProcess().Threads.Count);
Console.ReadKey();
}
static void Test()
{
for(int i=0;i<100;i++)Thread.Sleep(1);
}
結果はどうなると思いますか?
[Q1] p.Threads.Count が Process.GetCurrentProcess().Threads.Count と異なるのはなぜですか?