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 @ 2020-06-30 13:50  敖毛毛  阅读(572)  评论(0编辑  收藏  举报