异步方法在ASP.NET(MVC)中在哪里执行?

martijn_himself

许多文章(例如,本篇文章)都说ASP.NET(MVC)中的异步方法的优点是它们允许将线程释放到线程池中,从而可以处理其他请求。如果异步方法不使用线程池线程,那么它们在哪里执行,为什么执行?

马克·格雷维尔(Marc Gravell)

主要使用async在这种情况下是要等待外部资源-例如,数据库(SQL或无-SQL),网络的API(HTTP)等没有线程需要这些,因为它们不是基于CPU的运算。数据可用后,工作会在某个时间点恢复考虑:

var cust = await someApi.GetCustomerAsync();
var account = await anotherApi.GetAccount(cust.AccountId);
return View(account);

await这里所代表的进程外的工作-通常是网络。它们不会在任何地方“运行”,因为它们不是CPU操作。当占位任务报告完成,该方法的下一部分可以恢复,通常通过所捕获的同步上下文。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

异步方法在ASP.NET(MVC)中在哪里执行?

来自分类Dev

ASP.NET MVC中的异步方法

来自分类Dev

在ASP.NET MVC中触发并忘记异步方法

来自分类Dev

ASP.NET MVC在Controller中异步实现的最佳方法

来自分类Dev

MVC中对象的方法在哪里?

来自分类Dev

asp.net mvc在哪里放置结构

来自分类Dev

从MVC 4知道ASP .NET MVC 5解决方案中的Filters文件夹在哪里

来自分类Dev

异步方法在哪里运行?

来自分类Dev

如何使ASP.NET MVC控制器方法异步

来自分类Dev

Asp.Net MVC,WebApi和正确的异步方法

来自分类Dev

asp.net mvc 5异步操作方法

来自分类Dev

Asp.Net MVC,WebApi和正确的异步方法

来自分类Dev

在 ASP.NET MVC 中将数据访问方法放在哪里?

来自分类Dev

ASP NET MVC 5任务异步创建异步方法

来自分类Dev

ASP.NET MVC 4解决方案在哪里将业务逻辑类放在实体框架中?

来自分类Dev

ASP.NET MVC5 Azure AD Web App模板中的数据库在哪里?

来自分类Dev

从ASP.NET中的异步方法缓存结果

来自分类Dev

从ASP.NET中的异步方法缓存结果

来自分类Dev

HtmlEncode在Asp.NET 5中在哪里

来自分类Dev

ASP.NET Core <a>中的htmlAttribute在哪里?

来自分类Dev

ASP .NET MVC 5中的异步任务

来自分类Dev

ASP中的异步Web服务。NET MVC

来自分类Dev

ASP中的异步Web服务。NET MVC

来自分类Dev

在ASP.NET MVC5中调用异步方法时无法等待'long'

来自分类Dev

从ASP.net项目中调用静态异步方法

来自分类Dev

COM方法调用在哪里执行

来自分类Dev

异步方法中的Mvc .Net Catch异常

来自分类Dev

ASP MVC上的异步

来自分类Dev

我应该在哪里管理asp.net mvc Windows身份验证角色