.NET 4 System.Threading.CountdownEvent
来源:互联网 发布:vmware8.0.2安装ubuntu 编辑:程序博客网 时间:2024/06/05 06:18
在Visual Studio 2010 and .NET Framework 4 Training Kit中有个System.Threading.CountdownEvent的Demo, CountdownEvent类似于Java中有个 CountDownLatch类, 通过CountdownEvent可以在主线程中线程池中的任务运行,主线程要等待线程池中的任务完成之后才能继续。CountdownEvent Class在使用上十分的简单,只要在CountdownEvent的构造函数中传入信号量的数量。在每个线程启动的地方主线程调用AddCount方法增加信号量计数,线程池中跑的线程调用Signal。然后在主线程中调用Signal和Wait方法,就可以实现主 线程等待X次Signal方法调用之后继续。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace CountdownEventDemo
{
class Program
{
static void Main(string[] args)
{
var customers = Enumerable.Range(1, 20);
using (var countdown = new CountdownEvent(1))
{
foreach (var customer in customers)
{
int currentCustomer = customer;
ThreadPool.QueueUserWorkItem(delegate
{
BuySomeStuff(currentCustomer);
countdown.Signal();
});
countdown.AddCount();
}
countdown.Signal();
countdown.Wait();
}
Console.WriteLine("All Customers finished shopping...");
Console.ReadKey();
}
static void BuySomeStuff(int customer)
{
// Fake work
Thread.SpinWait(200000000);
Console.WriteLine("Customer {0} finished", customer);
}
}
}
- .NET 4 System.Threading.CountdownEvent
- .NET 4 System.Threading.Barrier 类
- .net 4.0新特性-CountDownEvent
- 讲解定时器VB.NET System.Threading类
- .NET多线程编程 - System.Threading.Thread类
- System.Threading
- System.Threading
- .NET多线程编程(2):System.Threading.Thread类
- .NET多线程编程(2):System.Threading.Thread类
- .NET多线程编程(2):System.Threading.Thread类
- .NET多线程编程(2):System.Threading.Thread类
- .NET多线程编程(2):System.Threading.Thread类
- .NET多线程编程(2):System.Threading.Thread类
- .NET多线程编程(2):System.Threading.Thread类
- ASP.NET中System.Threading引发的安全漏洞
- .NET多线程编程(2):System.Threading.Thread类
- .Net多线程编程—System.Threading.Tasks.Parallel
- .NET多线程编程(2):System.Threading.Thread类
- .NET深入学习笔记(1):DataSet和SqlDataReader性能差异深入剖析与测试
- Google 英文翻译版
- flex Panel控件内部容器大小计算方法
- 时下最流行的经典生活感悟
- C# 4.0 Optional Parameters 和Named Parameters
- .NET 4 System.Threading.CountdownEvent
- .NET 4 System.Threading.Barrier 类
- SQL Azure十月份更新
- 互联网也要动感起来
- 使用LogParser分析网站运行情况(比较简单)
- 为何中国电信在今年如此激进
- Palm Pre SDK 初体验
- 电话号码都具有位置信息吗
- c99