Async背后的线程切换

await的调用的等待期间,.NET会把当前的线程返回给线程池,等异步方法调用执行完毕后,框架会从线程池再取出来一个线程执行后续的代码

优化逻辑:避免线程切换

异步方法不等于多线程

异步方法的代码并不会自动在新线程中执行,除非把代码放到新线程中执行

Async方法缺点:

1.异步方法会生成一个类运行效率没有普通方法高

2.可能会占用非常多的线程

返回值为Task的不一定都要标注Async,标注Async只是让我们可以更方便的await而已

如果一个异步方法只是对别的异步方法调用的转发,并没有太多复杂的逻辑,那么久可以去掉Async关键字

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部