.NET Web应用中为什么要使用async/await异步编程
前言 什么是async/await? await和async是.NET Framework4.5框架、C#5.0语法里面出现的技术,目的是用于简化异步编程模型。 async和await的关系? async和await是成对出现的。 async出现在方法的声明里,用于批注一个异步方法。光有async是没有意义的。 await出现在方法内部,Task前面。只能在使用async关键字批注的方法中使用await关键字。 private async Task DoSomething( ) { await Task.Delay(TimeSpan.FromSeconds( 10)); } async/await会创建新的线程吗? 不会。async/await关键字本身是不会创建新的线程的,但是被await的方法内部一般会创建新的线程。 asp.net mvc/webapi action中使用async/await会提高请求的响应速度吗? 不会。 正题 我们都知道web应用不同于winform、wpf等客户端应用,客户端应用为了保证UI渲染的一致性往往都是采用单线程模式,这个UI线程称为主线程,如果在主线程做耗时操作就会导致程序界面假死,所以客户端开发中使用多线程异步编程非常必要。 可web应用本身就是多线程模式,服务器会为每个请求分配工作线程。 既然async/await不能创建新线程