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操作

相关推荐
Jolyne_9 分钟前
如何实现无感刷新Token
前端
wanhengidc11 分钟前
云手机畅玩 梦幻西游
运维·服务器·arm开发·智能手机·自动化
葵续浅笑14 分钟前
LeetCode - 杨辉三角 / 二叉树的最大深度
java·数据结构·算法·leetcode
用户40993225021216 分钟前
Vue3响应式系统的底层原理与实践要点你真的懂吗?
前端·ai编程·trae
装不满的克莱因瓶23 分钟前
【Java架构师】各个微服务之间有哪些调用方式?
java·开发语言·微服务·架构·dubbo·restful·springcloud
熊猫_豆豆28 分钟前
回调函数的作用与举例(Python版)
服务器·python·编程语法
杨筱毅30 分钟前
【穿越Effective C++】条款13:以对象管理资源——RAII原则的基石
开发语言·c++·effective c++
qq_4798754331 分钟前
RVO和移动语义
前端·算法
加菲喵32 分钟前
深度解析:在vue3中使用自定义Hooks
前端
N 年 后35 分钟前
cursor和传统idea的区别是什么?
java·人工智能·intellij-idea