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

相关推荐
草履虫君2 分钟前
VMware 虚拟机网络性能优化指南:从 11 秒到 4 秒的完整调优实践
服务器·网络·经验分享·性能优化
We་ct2 分钟前
深度剖析浏览器跨域问题
开发语言·前端·浏览器·跨域·cors·同源·浏览器跨域
日取其半万世不竭6 分钟前
LVM 逻辑卷管理:不停机扩容磁盘的正确方式
运维·服务器
身如柳絮随风扬9 分钟前
多数据源切换实战:从业务场景到3种实现方案全解析
java·分布式·微服务
skywalk816311 分钟前
在考虑双轨制,即在中文语法的基础上,加上数学公式的支持,这样像很多计算将更加简单方便,就像现在的小学数学课本里面一样,比如:定x=2*x + 1
开发语言
小书房14 分钟前
Kotlin的by
android·开发语言·kotlin·委托·by
weixin_4277716127 分钟前
前端调试隐藏元素
前端
就叫飞六吧30 分钟前
QT写一个桌面程序exe并动态打包基本流程(c++)
开发语言·c++
threelab40 分钟前
Three.js 代码云效果 | 三维可视化 / AI 提示词
开发语言·javascript·人工智能
Java小生不才40 分钟前
Spring AI文生音
java·人工智能·spring