for(int i=0;i<10;i++)
{
Thread thread = new Thread(new ParameterizedThreadStart(ForBaseInfoThread));
}
我这样到底创建了多少个线程?
10个 还是一个
每个线程是否会互相影响?

解决方案 »

  1.   

    10 个
                //MyThread thr1 = new MyThread();
                //MyThread thr2 = new MyThread();            //Thread tid1 = new Thread(new ThreadStart(thr1.Thread1));
                //Thread tid2 = new Thread(new ThreadStart(thr2.Thread1));            //tid1.Name = "Thread 1";
                //tid2.Name = "Thread 2";            //try
                //{
                //    tid1.Start();
                //    tid2.Start();
                //}
                //catch (ThreadStateException te)
                //{
                //    Console.WriteLine(te.ToString());
                //}            //tid1.Join();
                //tid2.Join(new TimeSpan(0, 0, 1));            //tid1.Join();
                //tid2.Join(new TimeSpan(0, 0, 1));            //Console.WriteLine("End of Main");        }        public class MyThread
            {            public void Thread1()
                {
                    for (int i = 0; i < 10; i++)
                    {                    Thread thr = Thread.CurrentThread;
                        Console.WriteLine(thr.Name + "=" + i);
                        Thread.Sleep(1000);
                    }
                }
            }
      

  2.   

    解释一下我说是一个的原因,说得不对请大家继续拍:楼主的循环里仅创建线程,并未启动。相对来说,在内存中仅创建了实例而已,下一次循环之后,该实例作用消失,因为并未使用,所以被回收。这就和:
    for(int i=0;i <10;i++) 

      new Object(); 
    }
    到最后一次循环时到底存在几个Object实例应该是一样的。
      

  3.   

    如果楼主的代码是:
    for(int i=0;i <10;i++) 

    Thread thread = new Thread(new ParameterizedThreadStart(ForBaseInfoThread)); 
    thread.Start();
    }
    的话,我收回1个的说法。其实刚开始应该说0个才对,嘿嘿。