C#等待子线程执行完毕

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsloeApp1
{

    class Program
    {
        static ManualResetEvent manualRestEventA = new ManualResetEvent(false);
        static ManualResetEvent manualRestEventB = new ManualResetEvent(false);
        static void Main(string[] args)
        {


            Task taskA = new Task(new Action(() => {
                for (int i = 0; i < 100; i++)
                {
                    Console.WriteLine("*******************************************************************");

                }
                manualRestEventA.Set();
            }));

            Task taskB = new Task(new Action(() => {
                for (int i = 0; i < 1000; i++)
                {
                    Console.WriteLine("____________________________________________________________________");
                }

                manualRestEventB.Set();
            }));

            taskA.Start();
            taskB.Start();

            manualRestEventA.WaitOne();
            manualRestEventB.WaitOne();

            Console.WriteLine("Synchornolyze Done");

            Console.ReadKey();
        }
    }
}

  

上一篇:ManualResetEvent 与 AutoResetEvent 的理解和使用


下一篇:实际项目中关于ManualResetEvent的用法