• c# countDownEvent类


    前言

    把异步先总结完吧。

    countDownEvent 这东西是干什么的呢?

    比如说我们比赛跑步,我们需要得出的是第一二三名得出后就可以先统计出来,因为比较重要,后面没有获得获奖名次的可以后续统计出来。

    正文

    static void Main(string[] args)
    {
    	Console.WriteLine("Starting two operations");
    	var t1 = new Thread(() => PerformOperation("operation 1", 4));
    	var t2 = new Thread(() => PerformOperation("operation 1", 8));
    	t1.Start();
    	t2.Start();
    	_contdown.Wait();
    	Console.WriteLine("Both operations have been completed.");
    	_contdown.Dispose();
    }
    static CountdownEvent _contdown = new CountdownEvent(2);
    
    static void PerformOperation(string message, int seconds)
    {
    	Sleep(TimeSpan.FromSeconds(seconds));
    	Console.WriteLine(message);
    	_contdown.Signal();
    }
    

    在上面这个例子中,我通过使用_contdown 实例化为等待两个线程。

    PerformOperation 中通过_contdown.Signal();来减少数量,如果减少到0的时候那么这个时候_contdown.Wait();就可以过了。

    可能我这样解释比较牵强吧,可以跑一下就很清晰了。

    CountdownEvent 还有很多方法,可以点进去看一下,但是功能和原理差不多是这个。

  • 相关阅读:
    现代操作系统-读者/写者问题
    现代操作系统-进程互斥
    关于网页强制被跳转到wpkg.org的解决
    Leetcode Count Prime
    Leetcode Add Two Numbers
    Leetcode Two Sum
    can't find -lsocket的解决办法
    删除Windows右键不用的选项
    Linux下的另一个词典GoldenDict
    spark执行例子eclipse maven打包jar
  • 原文地址:https://www.cnblogs.com/aoximin/p/13213329.html
Copyright © 2020-2023  润新知