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 还有很多方法,可以点进去看一下,但是功能和原理差不多是这个。

posted @   敖毛毛  阅读(578)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示