欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

c# 中CountDownEvent的使用

程序员文章站 2022-04-23 10:55:43
...
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)!

相关标签: c#,CountDownEvent