C# 异步编程

在.net Core中,微软提供了async以及await,可以使我们很轻松的编写异步代码,并且async和await要同时使用。减少对服务器的访问次数,不要将不需要的数据提前拿出来。

编写异步方法应该注意的点:

1.方法名应该是 async Task 而非 async void.

总结一句话就是:void的异步方法发生异常时,开发者得不到任何通知,程序既不会触发普通的异常处理程序,也不会把这些异常记录下来。总之,这会让相关的线程默默的终止掉。但Task会汇报异常信息。

2.不要混合使用阻塞代码和异步代码

3.不要把同步方法与异步方法组合起来使用(尽量不用Wait()以及.result这些阻塞式的方法),.result会阻塞其他方法的调用,只有当前方法执行完,才会执行下面的方法。对于await来说,当主方法调用的方法中有await,就先执行await代表的方法,顺便返回主方法去执行其他方法,await执行完在执行下面的方法。

4.尽量异步执行I/O操作

相关推荐
乔宕一1 天前
使用 C 模仿 C++ 模板的拙劣方法
c语言·开发语言·c++
朦胧之1 天前
Promise控制同时请求的数量
前端·javascript
叫我阿柒啊1 天前
从Java全栈到前端框架:一场真实的技术面试实录
java·spring boot·redis·typescript·vue3·jwt·前后端分离
wow_DG1 天前
【Vue2 ✨】 Vue2 入门之旅(六):指令与过滤器
前端·javascript·vue.js
掘金安东尼1 天前
Obs.js:面向所有人的上下文感知 Web 性能
前端·javascript·github
武子康1 天前
Java-114 深入浅出 MySQL 开源分布式中间件 ShardingSphere 深度解读
java·数据库·分布式·mysql·中间件·性能优化·开源
几个高兴1 天前
不同开发模式下的身份认证
前端
Li_yizYa1 天前
JVM:内存区域划分、类加载的过程、垃圾回收机制
java·jvm
BYSJMG1 天前
计算机毕设推荐:基于python的农产品价格数据分析与预测的可视化系统的设计与实现 基于Python农产品管理系统【源码+文档+调试】
大数据·开发语言·hadoop·python·数据分析·django·课程设计
失散131 天前
并发编程——06 JUC并发同步工具类的应用实战
java·架构·并发编程