c# 中CountDownEvent的使用

黄舟
黄舟 原创
2017-03-01 10:50:53 2002浏览

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中文网(m.sbmmt.com)!


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。