gpt4 book ai didi

c# - async 和 await 是否会提高 ASP.Net 应用程序的性能

转载 作者:可可西里 更新时间:2023-11-01 07:53:32 25 4
gpt4 key购买 nike

我最近读了一篇关于 c#-5 和新的很好的异步编程特性的文章。我看到它在 Windows 应用程序中效果很好。我的问题是此功能是否可以提高 ASP.Net 性能?

考虑这两个伪代码:

public T GetData()
{
var d = GetSomeData();
return d;
}

public async T GetData2()
{
var d = await GetSomeData();
return d;
}

在一个 ASP.Net 应用程序中,两个代码有区别吗?

谢谢

最佳答案

首先,您的第二段代码将返回 Task<T>而不是 T .最终的答案是“视情况而定”。

如果您的页面需要访问多个数据源,可能可以更简单地并行访问这些数据源,仅在必要时使用每次访问的结果。因此,例如,您可能希望开始将长时间运行的数据提取作为页面处理的第一部分,然后只需要最后的结果。显然,不使用 async/await 也可以做到这一点,但当语言帮助你时,它会简单得多。

此外,异步可用于在少量线程上处理大量长时间运行的请求,如果这些请求中的大多数在很长一段时间内都处于空闲状态 - 例如在长轮询场景中。我可以看到异步功能被用作 SignalR 的替代品在某些情况下。

异步在服务器端的好处比在客户端更难确定,因为它有不同的帮助方式——而“避免在 UI 线程上工作”方面非常明显,很容易看到好处。

请不要忘记,服务器端编码不仅仅是前端。根据我的经验,异步最有可能在实现 RPC 服务时有用,尤其是那些与多个其他 RPC 服务对话的服务。

正如 Pasi 所说,它只是语法糖 - 但我相信它是足够甜的糖,它很可能会区分适当的异步处理是否可行与过于复杂的工作。

关于c# - async 和 await 是否会提高 ASP.Net 应用程序的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867005/

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