博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《C#多线程编程实战(原书第2版)》——2.7 使用CountDownEvent类
阅读量:7024 次
发布时间:2019-06-28

本文共 703 字,大约阅读时间需要 2 分钟。

本节书摘来自华章出版社《C#多线程编程实战(原书第2版)》一书中的第2章,第2.7节,作者(美)易格恩·阿格佛温(Eugene Agafonov),黄博文 黄辉兰 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.7 使用CountDownEvent类

本节将描述如何使用CountdownEvent信号类来等待直到一定数量的操作完成。

2.7.1 准备工作

为了学习本节,你需要安装Visual Studio 2015。除此之外无需其他准备。本节的源代码放置在BookSamplesChapter2Recipe6目录中。

2.7.2 实现方式

请执行以下步骤来了解CountDownEvent类的使用:

1.启动Visual Studio 2015。新建一个C#控制台应用程序项目。

2.在Program.cs文件中加入以下using指令:

cd3b121c82112023c94dbfebec1a74aee8ade2f6

3.在Main方法下面加入以下代码片段:

bf30f697ba8770f5e51453e46e3c78637bcfaad0
230d95a06350f2a4cef097de1dff67443e583597

4.在Main方法中加入以下代码片段:

2457eb43883ceb0ab125208995891c03e8b14a9a

5.运行程序。

2.7.3 工作原理

当主程序启动时,创建了一个CountdownEvent实例,在其构造函数中指定了当两个操作完成时会发出信号。然后我们启动了两个线程,当它们执行完成后会发出信号。一旦第二个线程完成,主线程会从等待CountdownEvent的状态中返回并继续执行。针对需要等待多个异步操作完成的情形,使用该方式是非常便利的。

然而这有一个重大的缺点。如果调用_countdown.Signal()没达到指定的次数,那么_countdown.Wait()将一直等待。请确保使用CountdownEvent时,所有线程完成后都要调用Signal方法。

转载地址:http://dcvxl.baihongyu.com/

你可能感兴趣的文章
51nod 1770 数数字
查看>>
SEO艺术--搜索引擎基础
查看>>
Selenium+PhantomJS实现简易有道翻译爬虫
查看>>
发现一个问题
查看>>
[转]Shared——React Native与原生关系理解与对比
查看>>
HPC Linux
查看>>
JDBC 插入时间字段的值
查看>>
CentOS 7之Postfix部署系列 (二) CentOS网络设置
查看>>
30K 月薪运维工程师面试考什么?滴滴17年春招笔试题
查看>>
给力!新书面市:软考45分采分点梳理与难点突破——系统集成项目管理工程师...
查看>>
分享ISTQB培训体验
查看>>
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(3)...
查看>>
自动化部署工具PUPPET介绍
查看>>
SystemCenter2012SP1实践(7)SCVMM管理VMware
查看>>
监控AlwaysOn可用性组的运行状态
查看>>
虚拟化基础架构Windows 2008篇之10-使用WDS安装Windows 7
查看>>
“高、纯、久”当道,量子点技术能否重构电视分水岭?
查看>>
Frost&Sullivan:2012年中国数据库安全审计与防护产品市场分析
查看>>
KingbaseES的standby搭建
查看>>
Exchange 2010 SP3正式发布提供下载
查看>>