AsyncEx - async/await 的辅助库

简介

AsyncEx - async/await 的辅助库

安装

使用Nuget安装Nito.AsyncEx

使用

AsyncLock

构造AsyncLock函数可以采用异步等待队列;传递自定义等待队列以指定您自己的排队逻辑。

private readonly AsyncLock _mutex = new AsyncLock();
public async Task UseLockAsync()
{// AsyncLock can be locked asynchronouslyusing (await _mutex.LockAsync()){// It's safe to await while the lock is heldawait Task.Delay(TimeSpan.FromSeconds(1));}
}

AsyncContext

该AsyncContext类型提供了执行异步操作的上下文。await关键字需要返回一个上下文。对于大多数客户端程序,这是一个 UI 上下文;对于大多数服务器程序,这是一个线程池上下文.AsyncContextThread是一个单独的线程或任务,它运行AsyncContext. AsyncContextThread不是从Thread类派生的。AsyncContext线程在创建后立即开始运行。AsyncContextThread将一直停留在其循环中,直到另一个线程调用JoinAsync. 处置 anAsyncContextThread也会要求它退出

class Program
{static async Task<int> AsyncMain(){..}static int Main(string[] args){return AsyncContext.Run(AsyncMain);}
}

AsyncMonitor

在监视器中,任务可能决定通过调用来等待信号WaitAsync。在等待期间,它会暂时离开监视器,直到收到信号并重新进入监视器。返回的任务EnterAsync将进入Completed监视器后的状态。如果在等待满足之前发出信号,则相同的任务将进入Canceled状态;CancellationToken在这种情况下,该任务不会进入监视器。

返回的任务WaitAsync会Completed在收到信号后进入状态,重新进入监视器。如果在等待满足之前发出信号,则相同的任务将进入Canceled状态;CancellationToken在这种情况下,任务将等待进入Canceled状态,直到它重新进入监视器。请记住,从WaitAsync被调用到其返回任务完成的时间,调用任务已经离开了监视器。

b51c8eca9b6579f4ac7923760fc681ab.png

Github地址

https://github.com/StephenCleary/AsyncEx

最后大家如果喜欢我的文章,还麻烦给个关注并点个赞, 希望net生态圈越来越好!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你要知道的开源地理空间软件10件事

你对开源地理空间软件了解多少?执行编辑Adena Schutzberg给大家做个简介&#xff0c;他为我们提出了理解开源地理空间软件的10个关键点。 1、开源地理空间软件 开源地理空间软件是指通过开源许可分发传播的GIS、GPS、空间数据管理、相关的开发工具以及用户应用程序。 有人用术…

dell设置从ssd启动_为什么懂电脑的人都说SSD不要分区?原来真相是这样!

最近韩博士打开电脑时发现开机速度真是越来越慢&#xff0c;从一开始的十秒左右到现在居然要一分多钟才能进入桌面&#xff01;果然是老了。花费一天的时间终于将电脑清理个干净&#xff0c;原以为能够缓解开机慢的情况&#xff0c;结果还是一样&#xff0c;等到地老天荒才看到…

数据切分——Atlas介绍

Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上&#xff0c;修改了大量bug&#xff0c;添加了很多功能特性。目前该项目在360公司内部得到了广泛应用&#xff0c;很多MySQL业务…

在Arcmap中加载互联网地图资源的4种方法

在Arcmap中加载互联网地图资源的4种方法 前一段时间想在Arcmap中打开互联网地图中的地图数据&#xff0c;如影像数据、基础地图数据等&#xff0c;经过简单研究目前总结了四种方法&#xff0c;整理下与大家分享&#xff0c;有些内容可能理解有误&#xff0c;希望大家多多指教。…

iOS开发之手势识别

感觉有必要把iOS开发中的手势识别做一个小小的总结。在上一篇iOS开发之自定义表情键盘(组件封装与自动布局)博客中用到了一个轻击手势&#xff0c;就是在轻击TextView时从表情键盘回到系统键盘&#xff0c;在TextView中的手是用storyboard添加的。下面会先给出如何用storyboard…

IOS学习笔记之十一(包装类、description、isequal)

1、下面的类不是包装类 1)、NSInteger(64位相对于long) 2)、NSUInteger(64位相对于unsigned long) 3)、CGFLoat(64位相对于double, 32位相对于float) 2、下面类是包装类 1)、NSValue NSValue是NSNumber的父类 2)、NSNumber 一般方法 numberWith***&#xff1a;把指定类…

WPF 基础控件之 GroupBox样式

其他基础控件1.Window2.Button3.CheckBox4.ComboBox5.DataGrid 6.DatePicker7.ExpanderGroupBox控件修改Style需要注意使用Grid分两行进行展示第0行显示Header第1行显示Content。Header&#xff1a;添加Border并边框BorderThickness"1" 内部新增 ContentPresenter 然…

软件测试的目的

测试的目的是什么呢&#xff1f;这是一个看起来很简单、不太值得讨论的问题&#xff0c;但往往这样的问题其实是很难回答的&#xff0c;比如人生的意义是什么&#xff1f;好&#xff0c;现在我们就来&#xff0c;列举一下我们经常听到的对这个问题的回答&#xff1a;“软件测试…

并联系统的失效率公式推导_供暖系统水力平衡率对室温的影响

摘要&#xff1a;热水供暖系统设计&#xff0c;为了保证室内能够达到设计温度&#xff0c;必须使流进散热器的热水流量与房间的热负荷相匹配&#xff0c;散热器才能散发足够热量以弥补由于建筑物围护结构散失的热量&#xff0c;保证室内温度。供暖系统设计只有通过正确的水力计…

面向对象——一起来复习托付与事件!

事件与托付事实上并不难理解。仅仅是由于它们的使用方式与经常使用的编码有非常大的区别&#xff0c;例如通常编写的都是同步代码&#xff0c;调用一个类型的方法&#xff0c;会即刻出现方法运行的结果。这是符合逻辑的。但在某些情况中&#xff0c;同步代码未必满足需求&#…

VS2008打包(含水晶报表)与安装注意事项

1、解决使用次数限制 修改下面两项注册值为1000: HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\10.5\Report Application Server\InprocServer\PrintJobLimit HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\10.5\Report Application Server\Server\PrintJobLimit 2、添…

为何Windows版QuickTime突然寿终正寝?

在QuickTime中两个零日漏洞被披露、且苹果公司突然停止支持该软件后&#xff0c;美国国土安全部和趋势科技公司发布安全公告建议用户卸载Windows版QuickTime。苹果公司随后宣布Windows版QuickTime寿终正寝。为什么苹果不修复这些漏洞&#xff0c;或者至少提前告知用户其结束Qui…

IOS学习笔记十二(类别和扩展)

1、类别(category)和扩展 类别:OC动态特征许使用类别添加新的方法&#xff0c;不需要创建子类 扩展&#xff1a;和类别相似&#xff0c;扩展相对于匿名类别 2、使用格式 类别&#xff1a;interface 已有类(类别名)…end implmentaion 已有类(类别名)…end 扩展&#xff1a;im…

Blazor University (7)组件 — 双向绑定

原文链接&#xff1a;https://blazor-university.com/components/two-way-binding/双向绑定源代码[1]注意&#xff1a; 如果您还没有这样做过&#xff0c;请在继续本节之前先执行单向绑定[2]中的步骤。到目前为止&#xff0c;我们有一个包含嵌入组件的页面&#xff0c;并且我们…

【iCore3 双核心板】例程二十二:LAN_UDP实验——以太网数据传输

实验指导书及代码包下载&#xff1a; http://pan.baidu.com/s/1kTPlJMJ iCore3 购买链接&#xff1a; https://item.taobao.com/item.htm?id524229438677 转载于:https://www.cnblogs.com/xiaomagee/p/5084291.html

想了好久 请多多指教

条件&#xff1a;假设A公司光纤入网&#xff0c;isp给的是静态ip,应该是公网ip吧然后搭建了DNS服务器和WEB服务器&#xff0c;&#xff08;当然自己建了个企业网站&#xff0c;备过案&#xff09;目的是在使全世界的客户都能访问到A公司的企业网站----------------------------…

喜欢的名言警句

有志者、事竟成&#xff0c;破釜沉舟&#xff0c;百二秦关终属楚&#xff1b; 苦心人、天不负&#xff0c;卧薪尝胆&#xff0c;三千越甲可吞吴。 1、If not now, when? If not me, who? ---马云 2、一个成功的创业者&#xff0c;三个因素&#xff1a;眼光、胸怀和实力。---…

tomcat出现5个using_当猫咪出现这5个迹象,主人就要给猫咪换猫粮了

养宠的朋友们你们知道吗&#xff1f;猫咪最好是要定期换粮&#xff0c;这样才有助于猫咪营养平衡&#xff0c;并且避免猫咪对单一食物感到厌烦哦&#xff01;但是应该多久给猫咪换一次粮呢&#xff1f;如果你家猫咪出现这5个迹象时&#xff0c;那就是提醒你需要更换猫粮了&…

C# Barrier类

对于同步&#xff0c;Barrier 类非常适用于其中工作有多个任务分支且以后又需要合并工作的情况。Barrier 类用于需要同步的参与者。激活一个任务时&#xff0c;就可以动态地添加其他参与者&#xff0c;例如&#xff0c;从父任务中创建子任务。参与者在继续之前&#xff0c;可以…

特斯拉宣布将在欧洲建设第二座超级工厂

北京时间11月9日早间消息&#xff0c;特斯拉CEO伊隆马斯克&#xff08;Elon Musk&#xff09;和首席技术官JB斯特罗贝尔&#xff08;JB Straubel&#xff09;本周在德国宣布了对德国工程集团Grohmann Engineering的收购。在随后的发布会上&#xff0c;马斯克强调&#xff0c;特…