class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("使100递减到0");           
            Decrease dec = new Decrease(100);
            for (int i = 0; i < 100; i++)
            {
                string thread1 = "ddd" + i.ToString();               Thread thread1 = new Thread(new ThreadStart(dec.WriteNum));
              
                Console.WriteLine("thread1 Start"+i);
                thread1.Start();                
            }
            Console.ReadKey();
        }
    }
}
===========================================================
这是我写的呵呵见笑了。。

解决方案 »

  1.   

    Console.WriteLine("使100递减到0");
    Decrease dec = new Decrease(100);
    for (int i = 0; i < 100; i++)
    {
    string thread1 = "ddd" + i.ToString(); Thread t = new Thread(new ThreadStart(dec.WriteNum));
    t.Name = thread1; Console.WriteLine("{0} Start", t.Name);
    t.Start();
    }
    Console.ReadKey(); 
      

  2.   


    这样也只有一个线程在运行呀..100ddd1
    99ddd1
    98ddd1
    97ddd1
    96ddd1
    95ddd1
    94ddd1
    93ddd1
    92ddd1
    91ddd1
    90ddd1
    89ddd1
    88ddd1
    87ddd1
    86ddd1
    85ddd1
    84ddd1
    83ddd1
    82ddd1
    81ddd1
    80ddd1
    79ddd1
    78ddd1
      

  3.   

    嗯,这是我前两天为了回答另一个问题刚写的,稍微改一下就可以,不多说了,直接上代码
     class ThreadDemo
        {        static object a = new object();
            static object b = new object();
            static int i = 100;
            static int j = 0;
            public static void Main()
            {
                //Stopwatch sw = new Stopwatch();
                List<Thread> ThreadList = new List<Thread>(10);
                Thread tmp;
                for (int i = 1; i <= ThreadList.Capacity; i++)
                {                
                    tmp = new Thread(new ThreadStart(Process));
                    tmp.Name = "线程" + (i+1);
                    ThreadList.Add(tmp);               
                }
                foreach (Thread SingleThread in ThreadList)
                    SingleThread.Start();
                //Thread threadOne = new Thread(new ThreadStart(Process));
                //Thread threadTwo = new Thread(new ThreadStart(Process));
                //Thread threadThree = new Thread(new ThreadStart(Process2));
                //threadOne.Name = "线程1";
                //threadTwo.Name = "线程2";
                //threadThree.Name = "线程3";
                //sw.Reset();
                //sw.Start();
                //threadOne.Start();
                //threadTwo.Start();
                //threadThree.Start();
                //sw.Stop();
                //Console.WriteLine("一共花费了" + sw.Elapsed);
                Console.ReadKey();        }
            static private void Process()
            {
                while (i > 0)
                {
                    lock (a)
                    {
                        if (i > 0)
                        {
                            i--;
                            Console.WriteLine(Thread.CurrentThread.Name + "减1 ====> i = " + i);
                        }
                    }
                }
            }        static private void Process2()
            {
                while (j < 10)
                {
                    lock (a)
                    {
                        if (j <10 )
                        {
                            j++;
                            Console.WriteLine(Thread.CurrentThread.Name + "加1 ====> j = " + j);
                        }
                    }
                }
            }
        }
      

  4.   

    由于资源的抢占和线程的CPU调度,每次运行的结果会不一样~下面给一个运行结果:
    线程2减1 ====> i = 99
    线程4减1 ====> i = 98
    线程4减1 ====> i = 97
    线程4减1 ====> i = 96
    线程4减1 ====> i = 95
    线程4减1 ====> i = 94
    线程4减1 ====> i = 93
    线程4减1 ====> i = 92
    线程4减1 ====> i = 91
    线程4减1 ====> i = 90
    线程4减1 ====> i = 89
    线程4减1 ====> i = 88
    线程4减1 ====> i = 87
    线程4减1 ====> i = 86
    线程4减1 ====> i = 85
    线程4减1 ====> i = 84
    线程4减1 ====> i = 83
    线程4减1 ====> i = 82
    线程4减1 ====> i = 81
    线程4减1 ====> i = 80
    线程4减1 ====> i = 79
    线程4减1 ====> i = 78
    线程4减1 ====> i = 77
    线程4减1 ====> i = 76
    线程4减1 ====> i = 75
    线程4减1 ====> i = 74
    线程4减1 ====> i = 73
    线程4减1 ====> i = 72
    线程4减1 ====> i = 71
    线程4减1 ====> i = 70
    线程2减1 ====> i = 69
    线程2减1 ====> i = 68
    线程2减1 ====> i = 67
    线程2减1 ====> i = 66
    线程2减1 ====> i = 65
    线程2减1 ====> i = 64
    线程2减1 ====> i = 63
    线程2减1 ====> i = 62
    线程2减1 ====> i = 61
    线程2减1 ====> i = 60
    线程2减1 ====> i = 59
    线程2减1 ====> i = 58
    线程2减1 ====> i = 57
    线程2减1 ====> i = 56
    线程2减1 ====> i = 55
    线程5减1 ====> i = 54
    线程5减1 ====> i = 53
    线程5减1 ====> i = 52
    线程4减1 ====> i = 51
    线程3减1 ====> i = 50
    线程3减1 ====> i = 49
    线程6减1 ====> i = 48
    线程6减1 ====> i = 47
    线程6减1 ====> i = 46
    线程6减1 ====> i = 45
    线程6减1 ====> i = 44
    线程4减1 ====> i = 43
    线程4减1 ====> i = 42
    线程4减1 ====> i = 41
    线程4减1 ====> i = 40
    线程4减1 ====> i = 39
    线程4减1 ====> i = 38
    线程4减1 ====> i = 37
    线程4减1 ====> i = 36
    线程4减1 ====> i = 35
    线程4减1 ====> i = 34
    线程4减1 ====> i = 33
    线程4减1 ====> i = 32
    线程4减1 ====> i = 31
    线程4减1 ====> i = 30
    线程4减1 ====> i = 29
    线程4减1 ====> i = 28
    线程4减1 ====> i = 27
    线程4减1 ====> i = 26
    线程4减1 ====> i = 25
    线程2减1 ====> i = 24
    线程6减1 ====> i = 23
    线程8减1 ====> i = 22
    线程8减1 ====> i = 21
    线程8减1 ====> i = 20
    线程8减1 ====> i = 19
    线程8减1 ====> i = 18
    线程8减1 ====> i = 17
    线程8减1 ====> i = 16
    线程8减1 ====> i = 15
    线程8减1 ====> i = 14
    线程8减1 ====> i = 13
    线程8减1 ====> i = 12
    线程8减1 ====> i = 11
    线程8减1 ====> i = 10
    线程8减1 ====> i = 9
    线程8减1 ====> i = 8
    线程8减1 ====> i = 7
    线程8减1 ====> i = 6
    线程8减1 ====> i = 5
    线程8减1 ====> i = 4
    线程10减1 ====> i = 3
    线程4减1 ====> i = 2
    线程5减1 ====> i = 1
    线程7减1 ====> i = 0
      

  5.   

    一点点小问题
    tmp.Name = "线程" + (i+1);  ====》tmp.Name = "线程" + i;