本帖最后由 mimrc7993 于 2013-12-05 14:57:24 编辑

解决方案 »

  1.   

    for (int i = 0; i < 10; i++)
                    {
    int j = i;
                        Thread td = new Thread(delegate()
                        {
                            Console.WriteLine(j);
                        });
                        td.Start();
     
                    }
      

  2.   

    要顺序输出,可以加个Set - WaitOne
    或者换成递归,在delegate的writeline后面再开启新线程
      

  3.   

    class Program
        {
            static object thislock = new object();
            static ManualResetEvent me = new ManualResetEvent(false);
            static void Main(string[] args)
            {
                
                    for (int i = 0; i < 10; i++)
                    {
                        me.Reset();
                        Thread td = new Thread(delegate()
                        {
                            lock (thislock)
                            {
                                Console.WriteLine(i);
                                me.Set();
                            }
                        });
                        td.Start();
                        me.WaitOne();                }
            }
            
               
        }
      

  4.   

     
    class Program
        {
            static ManualResetEvent me = new ManualResetEvent(false);
            static void Main(string[] args)
            {
                
                    for (int i = 0; i < 10; i++)
                    {
                        me.Reset();
                        Thread td = new Thread(delegate()
                        {
                                Console.WriteLine(i);
                                me.Set();
                        });
                        td.Start();
                        me.WaitOne();                }
            }
            
               
        }LOCK可以不用