c# 中CountDownEvent的使用

来源:这里教程网 时间:2026-02-21 13:28:20 作者:

c# 中countdownevent的使用

class Program
    {
        static CountdownEvent _count = new CountdownEvent(3);
        static void Main(string[] args)
        {
          
            Task.Factory.StartNew(() =>
            {
                Thread.Sleep(2000);
                Console.WriteLine("thread 1 complete");
                _count.Signal();
            });
            Task.Factory.StartNew(() =>
            {
                Thread.Sleep(5000);
                Console.WriteLine("thread 2 complete");
                _count.Signal();
            });
            Task.Factory.StartNew(() =>
            {
                Thread.Sleep(3000);
                Console.WriteLine("thread 3 complete");
                _count.Signal();
            });
            Console.WriteLine("waiting tasks....");
            _count.Wait();
            Console.WriteLine("all task completed");

            Console.ReadKey();
        }
      
    }
使用TASK的waitAll可以达到同样的效果:
 var t1 = Task.Factory.StartNew(() =>
            {
                Thread.Sleep(2000);
                Console.WriteLine("thread 1 complete");
            
            });
           var t2 = Task.Factory.StartNew(() =>
            {
                Thread.Sleep(5000);
                Console.WriteLine("thread 2 complete");
            
            });
           var t3 = Task.Factory.StartNew(() =>
            {
                Thread.Sleep(3000);
                Console.WriteLine("thread 3 complete");
             
            });
            Console.WriteLine("waiting tasks....");
            Task.WaitAll(t1, t2, t3);
            Console.WriteLine("all task completed");

            Console.ReadKey();

 以上就是c# 中CountDownEvent的使用的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关推荐