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

相关推荐
成都渲染101云渲染66664 分钟前
Houdini+Blender高效渲染方案(高配算力+全渲染器兼容)
前端·系统架构
2301_818419015 分钟前
C++中的协程编程
开发语言·c++·算法
add45a8 分钟前
C++中的工厂方法模式
开发语言·c++·算法
java1234_小锋8 分钟前
Java高频面试题:Spring-AOP通知和执行顺序?
java·开发语言·spring
番茄去哪了12 分钟前
Java基础面试题day02
java·开发语言·面向对象编程
xushichao198916 分钟前
C++中的工厂模式高级应用
开发语言·c++·算法
njsgcs16 分钟前
c# solidworks 折弯系数检查
开发语言·c#
SuperEugene20 分钟前
Vue3 + Element Plus 表格实战:批量操作、行内编辑、跨页选中逻辑统一|表单与表格规范篇
开发语言·前端·javascript
2501_9249526924 分钟前
C++模块化编程指南
开发语言·c++·算法
gjc59226 分钟前
踩坑实录:MySQL服务器CPU爆高,元凶竟是SELinux的setroubleshootd?
运维·服务器·数据库·mysql·adb