zoukankan      html  css  js  c++  java
  • [.net 多线程]CountdownEvent

    System.Threading.CountdownEvent 是一个同步基元,它在收到一定次数的信号之后,将会解除对其等待线程的锁定。CountdownEvent在初始化时有一个初始计数量,在每个工作项在完成时调用 Signal每次调用Signal 时,信号计数都会递减 1。 在主线程上,对 Wait 的调用将会阻塞,直至信号计数为零。
     
     1 static void Main(string[] args)
     2 {
     3     CountdownEvent countdown = new CountdownEvent(3);
     4     int taskid = 1;
     5     for (var i = 0; i < 3; i++)
     6     {
     7         Task.Factory.StartNew(() =>
     8         {
     9             int cur = taskid++;
    10             Console.WriteLine($"Task[{cur}] is Running");
    11             Thread.Sleep(taskid * 1000);
    12             countdown.Signal();
    13             Console.WriteLine($"Task[{cur}] exit");
    14         });
    15     }
    16     Console.WriteLine($"Main wait");
    17     countdown.Wait();
    18     Console.WriteLine($"Main exit");
    19     Console.ReadKey();
    20 }
    CountdownEvent 示例代码

    CountdownEvent 与Barrier类似,但是在多次等待中,使用Barrier更加方便。

  • 相关阅读:
    f5版本升级
    f5申请并激活License
    f5时间设置
    f5 SNMP配置
    f5 Syslog管理
    f5单台安装配置
    f5负载均衡算法
    f5 Seldom used
    f5售后查询
    f5基本介绍
  • 原文地址:https://www.cnblogs.com/deepminer/p/9053493.html
Copyright © 2011-2022 走看看