gpt4 book ai didi

c# - 使用 AngularJS 的 Web API 异步方法

转载 作者:行者123 更新时间:2023-11-30 19:39:17 24 4
gpt4 key购买 nike

我刚开始使用 AngularJSMVC 5 我一直在考虑使用 Web APIAngularJS因为这似乎是将数据加载到客户端模型中的一个很好的解决方案。

但是我注意到相当多的指南使用返回 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
}

通过异步:

public async Task ProcessAsync()
{
for (int i = 0; i < 1000; i++)
{
Math.Sqrt(i);
}

await Task.Delay(3000) // async I/O
}

我们可以使用单个线程来处理同一方法的多个请求,因为处理请求的线程在您 await 异步操作时被释放。

关于c# - 使用 AngularJS 的 Web API 异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28238418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com