真爱无限的知识驿站

学习积累技术经验,提升自身能力

.Net最简单的创建多线程主线程等待所有线程执行完成的例子

多线程运行,主线程等待。

        private static void Test2()
        {
            var waits = new List<EventWaitHandle>();
            for (int i = 0; i < 10; i++)
            {
                var handler = new ManualResetEvent(false);
                waits.Add(handler);
                new Thread(new ParameterizedThreadStart(Print))
                {
                    Name = "thread" + i.ToString()
                }.Start(new Tuple<int, EventWaitHandle>(i, handler));
            }
            WaitHandle.WaitAll(waits.ToArray());
            Console.WriteLine("All Completed!");
            Console.Read();
        }
        private static void Print(object param)
        {
            var p = (Tuple<int, EventWaitHandle>)param;
            Console.WriteLine(Thread.CurrentThread.Name + ": Begin!");
            if (p.Item1 == 2) Thread.Sleep(1200);
            else if (p.Item1 ==1 ) Thread.Sleep(2000);
            else Thread.Sleep(1000);
            Console.WriteLine(Thread.CurrentThread.Name + ": Print" + p.Item1);
            Console.WriteLine(Thread.CurrentThread.Name + ": End!");
            p.Item2.Set();
        }


<< 1 >>

Powered By Z-BlogPHP 1.7.3

Copyright 2024-2027 pukuimin Rights Reserved.
粤ICP备17100155号