ASP.NET MVC4 异步控制器 - 为什么使用?

2023-12-25

我试图理解为什么以及何时应该使用async控制器动作。最终,当我使用await其中,它将等待操作完成才能返回视图。

例如

public async Task<ActionResult> TryMe()
{
   await SomeActionAsync();
   return View();
}

在这种情况下,如果我使用async或不使用async, the Action将花费相同的时间来执行。

如果我不尝试并行运行至少 2 个缓慢的操作(彼此不依赖),我认为没有任何理由使用async控制器动作。

如果我错了,请纠正我。我想我在这里遗漏了一些东西。


要点是await关键字是让你与异步操作无需编写丑陋的回调。

使用异步操作有助于避免浪费线程池线程。

解释

ASP.Net 在托管线程池中的线程中运行所有代码。
如果同时运行太多慢速请求,线程池将变满,新请求将需要等待线程释放。

然而,您的请求通常很慢,并不是因为它们正在执行计算(计算密集型),而是因为它们正在等待其他内容,例如硬盘、数据库服务器或外部 Web 服务(IO 或网络) -边界)。

仅仅为了等待外部操作完成而浪费宝贵的线程池线程是没有意义的。

异步操作允许您启动操作,将线程返回到池中,然后在操作完成时在不同的线程池线程上“唤醒”。
当操作运行时,不会消耗任何线程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC4 异步控制器 - 为什么使用? 的相关文章

  • 使用 Linq 进行异步Where过滤

    我有一个List通过填充的元素async调用 WebService 没问题 我需要过滤该列表以便在应用程序视图上显示某些内容 我试过这个 List
  • 重叠的回收和Application_Start

    我有一个使用 AppFabric 进行分布式缓存的 asp net Web 应用程序 在 Application Start 上 我初始化与 AppFabric 的连接 这通常需要几毫秒 这是完全可以接受的 有时可能需要长达30秒连接 在回
  • ASP.NET 会话状态服务器与 InProc 会话

    运行会话状态服务器而不是 InProc 的开销性能损失是多少 重要吗 我知道您可以使用状态服务器重新启动 w3wp 并保留所有会话状态 这是相对于 InProc 的唯一优势吗 这取决于您的部署计划 在单个服务器上 损失很小 但好处同样有限
  • Firebase 回调 - 底层触发器是什么?

    据我所知 在 Firebase 中我可以使用 on 方法注册我的页面以进行回调 根据他们的文档 on 用于监听特定位置的数据更改 这是从 Firebase 读取数据的主要方式 firebaseRef on value function da
  • 为什么应该或不应该将数据集、数据表等存储为 ASP.NET 页面中的会话变量?

    我正在开发一个使用 Web 服务返回的数据集的 Web 应用程序 当应用程序运行时 我将该数据集存储为会话变量 以便在用户导航到将编辑数据集中的表的不同页面时反复使用 这个想法是 当应用程序加载时 用户只需要等待一次数据 然后应用程序将使用
  • Microsoft.Bcl.Async 中是否有 ExceptionDispatchInfo 的类似物?

    有没有类似的ExceptionDispatchInfo http msdn microsoft com en us library system runtime exceptionservices exceptiondispatchinfo
  • Rust 单元测试中的错误:“函数声明中缺少 async 关键字”

    我正在使用 tokio 0 2 6 和 futures 0 3 0 的 Rust 工作区工作 尝试编译此代码时出现以下错误 cfg test mod tests test fn test assert eq true true error
  • 如何在asp.net背后的代码中获取css样式

    我需要从 asp net c 中的代码后面获取 css 样式 在网上没有找到解决方案 是否可以直接从 styles css 文件获取它 还是需要解决方法 我在我的网络应用程序中使用主题 但我还需要进行一些服务器处理 并且我需要 ccs 文件
  • 使用 Itextsharp 读取本地化 PDF 文件

    我正在尝试使用 iTextSharp 阅读 PDF 文件 问题是当尝试阅读英语以外的 PDF 文件 例如印地语或阿拉伯语 时 它无法获取正确的单词 我想知道 我应该在系统上安装印地语或阿拉伯字体 还是需要对编码进行一些处理 ITextExt
  • 刷新/重新加载 ASP.net 的副作用?

    我在 Web 和 ASP Net 开发方面相对较新 所以请耐心等待 在测试我们的网页的过程中 我注意到 如果用户单击 刷新 重新加载 并在 重新发送信息 对话框提示时单击 重试 则无论用户选择之前触发的最后一个事件如何到 刷新 随后将再次被
  • 如何为WCF服务创建重定向?

    我的网站 A 上托管了一个 WCF 服务 我还有另一个网站 B 它使用 IIS URL 重写将所有请求重定向到我的网站 A 但是 站点 B 不处理任何对 svc 文件的请求 返回 404 not find 知道如何让它发挥作用吗 UPD重定
  • ReportViewer 正在阻止其他功能,直到报告查看器加载完成

    这是 ReportViewer 控件
  • cookie 在会话结束时或在特定时间过期?

    cookie 是否可以在会话结束时或在特定时间过期 是的 这很简单 HttpCookie newCookie new HttpCookie myCookie newCookie Expires DateTime Today AddDays
  • IIS Express 安装目录在哪里?

    我最近开始了一个 ASP NET 教程 我想测试我用 WebMatrix 制作的页面 然而 有一个错误 Web 服务器配置为不列出该目录的内容 因此 它建议启用目录浏览并转到 IIS Express 安装目录并运行命令 那么它到底位于哪里呢
  • 指定的CGI应用程序遇到错误,服务器终止了进程

    我在 azure 上托管一个 asp net 5 应用程序 代码是为 beta8 编译的 该应用程序在本地环境以及当我在 azure 网站上发布代码时运行良好 我收到一个常见错误 指定的 CGI 应用程序遇到错误 服务器终止了该进程 我能够
  • 上下文不是 ASP.NET 用户控件的成员

    我刚刚在 ASP NET Web 应用程序项目中创建了新的用户控件 创建后 源代码如下所示 但是一旦我向其中添加一些额外的代码 第一行就会立即出现错误 上下文不是 CS SSR RAIO SSR Project 的成员 我确实有其他用户控件
  • 使用 C# 和 ADO.NET SET NOCOUNT ON 并读取消息

    SET NOCOUNT ON 会阻止显示受 Transact SQL 语句或存储过程影响的行数的消息作为结果集的一部分返回 a 如何使用 C 和 ADO NET 读取这些消息 我假设读取这些消息的 C 代码是相同的 无论 T SQL 语句是
  • 使用 UserProfileManager 获取随机用户

    我正在尝试为我正在处理的 SharePoint 2010 项目创建一个 Who is Web 部件 此 Web 部件应该从 SharePoint 配置文件中选择一个随机用户并显示他 她的姓名 部门和电话 问题是我找不到直接从用户配置文件中获
  • 非静态方法需要一个目标

    private PMS USERS currUser private bool validateUserName dbContext new PmsEntities var validateUser dbContext PMS USERS
  • 请求挂在 IIS 7.5 上的会话模块上

    有时 我网站上的一些请求开始挂在 Session 模块的 RequestAcquireState 状态上 当螺旋开始时 所有请求都会超时 我们需要在受影响的服务器上重新启动 IIS 我进行了很多调查 得到的唯一结论是 当应用程序尝试访问存储

随机推荐

  • 在 Thunderbird 扩展中获取邮件发件人

    我正在开发一个非常简单的 Thunderbird 扩展 它应该在发送邮件时提醒发件人的姓名以及收件人的姓名 问题是下面代码片段中的 gMsgCompose compFields from 字段为空 to 字段按预期工作 它处理 compos
  • 动态滚动文本区域

    我的页面上有一个 textarea html 元素 可以通过 ajax 重新加载 每次都会返回整个文本区域 而不仅仅是其内容 并且内容会随着时间的推移而增长 除了文本区域之外 我还返回以下 javascript 片段 在 firefox 3
  • JavaFX 8 中的日期选择器

    默认 JavaFX 8 包中是否有日期选择器和时间选择器的实现 我可以在不使用第三方解决方案的情况下使用它 日期选择器 是的 Java 8 有一个日期选择器 http download java net jdk8 jfxdocs javaf
  • 使用 JQuery 缓慢更改/淡入淡出/动画更改图像

    这是我的img img src one png 当用户将鼠标悬停在使用 jQuery 上时 我想慢慢地将这个图像 src 更改为 oneHovered png 哪种 jQuery 方法最适合执行此操作 我看到很多例子都要求我改变 CSS 背
  • javadoc 工具能否识别方法内的注释?

    我在我的业务逻辑中写了很多这样的评论 Do some important stuff param pDog param pAllDogTraining return Overwrite public Map
  • 如何使用 C# 获取打印作业状态

    我可以打印文档 但不知道如何获取其状态 我查阅了很多资源 MSDN http support microsoft com kb 322091 检查工作状态的链接 https stackoverflow com questions 55637
  • 方法retrieveRequestToken引发“与服务提供商的通信失败:null”

    我正在使用 twitter4j 从我的应用程序发送推文 当我调用方法retrieveRequestToken时 收到错误 与服务提供者的通信失败 null public static void askOAuth Context contex
  • 如何在DotnetNuke 7中临时存储数据?

    我是 DotnetNuke 的新人 请随时向我建议正确的术语 我正在开发 DotnetNuke 7 我使用 C 我有一个包含 30 个字符串字段的表 最多可以有 50 条记录 目前我正在使用数据库管理它 我认为数据不多 我应该将其存储在本地
  • TSQL 选择最大

    Userid FirstName LastName UserUpdate 1 Dan Kramer 1 1 2005 1 Dan Kramer 1 1 2007 1 Dan Kramer 1 1 2009 2 Pamella Slatter
  • 如何使用 Keras 获得可重复的结果?

    我试图使用 Keras 获得可重现的结果 但是每次运行该程序时都会得到不同的结果 我已经设置了 python 哈希种子 Numpy 随机种子 随机种子 TensorFlow 种子和 kernel initializer glorot uni
  • 在Android中将时间戳转换为日期?

    我正在实现一个Android应用程序 我想将时间戳转换为日期 但我无法成功 我尝试过以下事情 请检查一下我是否做错了什么 我正在传递这个值 myTimestamp 1328015914 DateFormat getDateFormat mC
  • 如何在drools中调用Java函数?

    我想从 Utils 类调用 Java 函数 该函数调用 JPA Repository 方法来检索自定义对象 我想从 Drools 决策表中调用这个函数 现在 这个简单的函数给出了空指针异常 我已经为此浪费了几个小时 我在决策表的 导入 部分
  • 如何从服务器获取客户端套接字的确认?

    我有一个向服务器发送消息的客户端套接字 每当服务器收到消息时 我想在客户端得到确认 是否有可能得到这种认可 我使用apache mina开发客户端 提前致谢 TCP中没有消息 只有字节流 有一个内部 ACK 机制可以跟踪有多少流已被正确接收
  • 如何让 PowerShell 等到命令完成后再继续?

    我使用以下行根据其产品 ID 卸载 Office 2007 Start Process C Windows System32 msiexec exe ArgumentList uninstall 90120000 0030 0000 000
  • 使用缓存时的 Rails 字符编码问题

    我正在使用 Rails fragemnet 缓存来缓存一些 html 下面是我的代码
  • Spark 数据集唯一 id 性能 - row_number 与 monotonically_increasing_id

    我想为我的数据集行分配一个唯一的 ID 我知道有两种实现选项 第一个选项 import org apache spark sql expressions Window ds withColumn id row number over Win
  • Cassandra轻量级事务的一致性级别

    我读到了 Cassandra 2 的轻量级事务 这样写的一致性级别是always在法定人数 这是否意味着即使我有一个包含 100 个节点的多数据中心设置 也会涉及整个集群的仲裁 所有数据中心的行副本的大多数 这会不会很慢并且不会影响可用性吗
  • C++11 是否允许非匿名联合包含静态数据成员?

    在 C 11 中 我声明以下联合 union U4 char c int i static int si 当我使用 std c 11 pedantic errors 使用 g 4 7 0 编译此代码时 出现以下错误 经过少量编辑 错误 本地
  • 从 React Native 中的模态窗口打开模态窗口

    我正在尝试打开一个Modal from a TouchHighlight位于另一个模态中 基本上应该发生的是 TouchHighlight在父主干中Modal应该再开一个中学Modal在它之上 而不关闭主Modal 但我收到以下错误 War
  • ASP.NET MVC4 异步控制器 - 为什么使用?

    我试图理解为什么以及何时应该使用async控制器动作 最终 当我使用await其中 它将等待操作完成才能返回视图 例如 public async Task