Ser*_*uss 2 .net c# asp.net async-await
我是新来使用AngularJS与MVC5,我一直在寻找使用Web API与AngularJS因为它似乎是一个很好的解决方案将数据加载到您的客户端模式.
但是我注意到有不少指南使用异步操作返回Task<Model>,我不明白这会给你带来什么好处而只使用标准Web API操作(例如:http://monox.mono-software.com/blog/post/ Mono/233/Async-upload-using-angular-file-upload-directive-and-net-WebAPI-service /和http://www.asp.net/web-api/overview/getting-started-with-aspnet -web-api/build-a-single-page-application-%28spa%29-with-aspnet-web-api-and-angularjs).
由于这些对Web API的调用是异步的,我不知道为什么我们需要使这些方法调用异步.使用标准的Web API调用不是更好吗?
我不知道stackoverflow是否适合这个,但我希望能解释为什么调用这样做.
async-await服务器的好处是可扩展性和性能.当您使用异步(非阻塞)替换同步(阻塞)操作时,可以释放先前阻塞的线程,等待您可以用来同时处理其他请求的线程.
async-await 使您能够用更少的资源做更多事情.
我们假设我们有这种同步方法:
public void Process()
{
for (int i = 0; i < 1000; i++)
{
Math.Sqrt(i);
}
Thread.Sleep(3000); // sync I/O
}
Run Code Online (Sandbox Code Playgroud)
通过制作async:
public async Task ProcessAsync()
{
for (int i = 0; i < 1000; i++)
{
Math.Sqrt(i);
}
await Task.Delay(3000) // async I/O
}
Run Code Online (Sandbox Code Playgroud)
我们可以使用单个线程来处理同一方法的多个请求,因为处理请求的线程await在异步操作时会被释放.
| 归档时间: |
|
| 查看次数: |
3957 次 |
| 最近记录: |