没有 async void 的即发即忘

2024-02-29

我有三种方法,其中第一个结果将在接下来的两个方法中使用,并且预计不会返回任何数据。

 result= await DataAccess.Query(param); //Query 
    await DataAccess.Create(result);
    await DataAccess.Update(result);
  1. 我真的需要在这里使用await吗?

  2. 使用 async void 是否正确 在创建和更新功能中?

  3. 正确的做法是什么 着火了却忘了这里?
  4. 如果我不提异步会火吗 忘记了?
  5. 没有await的async有什么意义,如果它 只用来同步运行?我什至可以在没有该关键字的情况下实现这一目标。

预计不会返回任何数据。

出现错误怎么办?如果发生错误,是否需要返回错误码?200 OK可以接受,即使Create or Update fails?

我假设您需要一个错误代码。 99.99% 的通话都是如此。

我真的需要在这里使用await吗?

好吧,如果你want同步方法,那么你就可以调用同步API。但我不知道你为什么想要那个。

提醒一句:await has nothing与返回浏览器有关。它与使用更少的线程池线程有关,从而允许您的服务器进一步扩展。

在创建和更新函数中使用 async void 是否正确?

没有永不。

在这里生火后忘记的正确方法是什么?

正确的做法是“不要”。 “一劳永逸”很难正确执行,事实上,由于您需要错误代码,因此您can't即发即忘。

我写了更多关于“一劳永逸”的文章 - 包括原因StartNew and Task.Run是无效的解决方案 -在我的博客上 http://blog.stephencleary.com/2014/06/fire-and-forget-on-asp-net.html。请注意,唯一完全可靠的解决方案(包括升级场景)是最后一种(分布式架构)。

如果只用于同步运行,那么没有await的async有什么意义?我什至可以在没有该关键字的情况下实现这一目标。

正在运行serially(按顺序),不同步地(阻塞线程)。的好处是async是为了允许更大的可扩展性。欲了解更多信息,请参阅我的介绍async在 ASP.NET 上 https://msdn.microsoft.com/en-us/magazine/dn802603.aspx文章。

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

没有 async void 的即发即忘 的相关文章

  • C# 中输入按键

    我尝试了这段代码 private void textBox1 KeyPress object sender KeyPressEventArgs e if Convert ToInt32 e KeyChar 13 MessageBox Sho
  • 如何将 mat 转换为 array2d

    我为dlib http dlib net face landmark detection ex cpp html那里的面部地标代码使用 array2d 来获取图像 但我喜欢使用 Mat 读取图像并转换为 array2d 因为 dlib 仅支
  • 如何使用 libclang 判断成员函数是 const 还是 volatile?

    我有一个实例CXCursor同类CXCursor CXXMethod 我想知道这个函数是否是const or volatile 例如 class Foo public void bar const void baz volatile voi
  • 为什么下面的重叠比较总是评估为 true

    我不明白为什么以下代码有警告 指出重叠比较始终评估为真 接下来的语句永远不会被执行 QVariant MainModel data const QModelIndex index int role const if index isVali
  • 在关键服务器上对字符串进行内存受限的外部排序,并合并和计算重复项(数十亿个文件名)

    我们的服务器生成如下文件 c521c143 2a23 42ef 89d1 557915e2323a sign xml在其日志文件夹中 第一部分是GUID 第二部分是名称模板 我想计算具有同名模板的文件的数量 例如 我们有 c521c143
  • 自动 IIS6 403.4 重定向到 SSL 不起作用

    我的 ASP Net 网站中有一个目录需要启用 SSL 对于所有其他目录 我不希望启用 SSL 使用 IIS 我为我想要需要 SSL 的文件夹选中了 需要安全通道 SS 和 128 位加密复选框 现在 当用户在我的安全目录中输入 http
  • 如何解决 服务器错误?

    我在 Visual Studio 中制作了一个 ASP NET 应用程序 当它准备好后 我做了 发布网站 我将创建的文件夹放在我的网站上 当我访问网站上的应用程序时 出现以下错误 应用程序中的服务器错误 配置错误 描述 处理服务此请求所需的
  • 如何使用 Selenium Webdriver .NET 绑定设置 Chrome 首选项?

    这是我正在使用的 用户代理可以成功设置 而下载首选项则不能 Windows 7 Chrome 26 Selenium dotnet 2 31 2 chromedriver win 26 0 1383 0 ChromeOptions chro
  • 哪个更快?按引用传递与按值传递 C++

    我认为按引用传递应该比按值传递更快 因为计算机不复制数据 它只是指向数据的地址 但是 请考虑以下 C 代码 include
  • 指向 VLA 的指针

    你可能知道 VLA 的优点和缺点 https stackoverflow com a 3082302 1606345在 C11 中它们是可选的 我认为使 VLA 成为可选的主要原因是 堆栈可能会爆炸 int arr n where n 10
  • 多个包含带有变量定义的头文件

    我只是构建一个简单的 C 项目 代码如下所示 head h ifndef HEAD H define HEAD H int my var 100 endif src1 cpp include head h src2 cpp include
  • C# 从今天起 30 天

    我需要我的应用程序从今天起 30 天后过期 我会将当前日期存储在应用程序配置中 如何检查应用程序是否已过期 我不介意用户是否将时钟调回来并且应用程序可以正常工作 用户太愚蠢而不会这样做 if appmode Trial string dat
  • 从 cin 读取整数序列并将它们存储在向量中

    这就是我读取整数的方法std cin并将它们存储在向量中 int number vector
  • 为什么将未使用的返回值转换为 void?

    int fn void whatever void fn 是否有任何理由将未使用的返回值强制转换为 void 或者我认为这完全是浪费时间 David s answer https stackoverflow com questions 68
  • 没有 FPU 的处理器中的浮点计算

    是否可以在没有浮点单元的嵌入式处理器中执行浮点运算 是的 您只需要在软件中完成即可 你的编译器可能会提供支持 http gcc gnu org onlinedocs gccint Soft float library routines ht
  • 如何缓存 ASP.NET 网站以获得更好的性能

    我是一名网页设计师 通常设计不需要更新的企业网站 所以我想将输出缓存一天 我怎样才能做到这一点 此外 任何有关在慢速服务器上提高 ASP NET 性能的建议都被接受 请注意 ASP NET 缓存有一个bug http connect mic
  • 在 C++ 中什么时候首选传递指针而不是引用传递?

    我可以想象一种情况 其中输入参数可以为 NULL 以便首选传递指针而不是传递引用 有人可以添加更多案例吗 在传递的对象实际上将被修改的情况下 有些人更喜欢传递指针 当对象通过引用传递时 它们使用 pass by const referenc
  • 曲线/路径骨架二值图像处理

    我正在尝试开发一个可以处理图像骨架的路径 曲线的代码 我想要一个来自两点之间骨架的点向量 该代码在添加一些点后结束 我没有找到解决方案 include opencv2 highgui highgui hpp include opencv2
  • 使用 List.Contains 方法为 LINQ 构建表达式树

    Problem 我正在重构一些LINQ查询我们的 Web 应用程序中的多个报告 并且我尝试将一些重复的查询谓词移至它们自己的中IQueryable扩展方法 以便我们可以将它们重新用于这些报告以及将来的报告 正如您可能推断的那样 我已经重构了
  • 在地图上使用 find

    如何使用 find 和 aconst iterator如果你有一个地图定义为 typedef std pair

随机推荐

  • Java Kafka adminClient 主题配置。配置值被覆盖

    在尝试使用 java kafka adminClient 配置新创建的 kafka 主题时 值被覆盖 我尝试使用控制台命令设置相同的主题配置 并且它有效 不幸的是 当我尝试通过 Java 代码时 一些值发生冲突并被覆盖 ConfigReso
  • Celery 在任何更改时自动重新加载

    当模块发生更改时 我可以使 celery 自动重新加载CELERY IMPORTS in settings py 我尝试让母模块检测子模块的变化 但它没有检测到子模块的变化 这让我明白检测不是由 celery 递归完成的 我在文档中搜索了它
  • 在android中使用内容提供程序获取联系号码

    我按照本教程学习了内容提供商的基础知识 http www vogella de articles AndroidSQLite article html http www vogella de articles AndroidSQLite a
  • 使用更改 django 模板中表单字段的名称属性

    我有表单字段 表单 项目 这将呈现为
  • 数据类型映射参数中的键只能使用列名

    我已经使用 dask read sql table 从 Oracle 数据库成功引入了一张表 但是 当我尝试引入另一个表时 出现此错误KeyError 只有列名可以用作数据类型映射参数中的键 我已经检查了我的连接字符串和架构 所有这些都很好
  • 转换为日期格式 dd/mm/yyyy

    我有以下日期 2010 04 19 18 31 27 我想将此日期转换为日 月 年 format 您可以使用正则表达式或一些手动字符串摆弄 但我想我更喜欢 date d m Y strtotime str
  • keras自定义损失纯python(没有keras后端)

    我目前正在编写一个用于图像压缩的自动编码器 我想使用用纯 python 编写的自定义损失函数 即不使用 keras 后端函数 这是否可能 如果可能的话 如何实现 如果可能的话 我将非常感谢您提供一个最小工作示例 MWE 请查看这个 MWE
  • AWS CloudFormation:在嵌套堆栈之间传递值

    更多 AWS 问题 好的 我们的想法是一个主模板调用所有嵌套堆栈 在此处的帮助下 我弄清楚了如何将参数从主服务器传递到嵌套堆栈 现在我试图弄清楚如何将值从嵌套堆栈传递到嵌套堆栈 我认为这应该通过出口和进口来完成 但我认为我的做法不太正确 我
  • Cesium JS 椭球切平面计算

    Problem 我对铯如何计算大地测量和地心表面法线有点困惑 根据计算法线生成的平面实际上并不与给定点的椭球面相切 而且 根据大地表面法线创建的平面与根据地心表面法线生成的平面完全相同 示例以及为什么我需要这个 In this 沙堡 htt
  • 使用关键字参数 end=' ' 获取 print 的语法错误

    我有这个 python 脚本需要运行gdal retile py 但我在这一行得到一个例外 if Verbose print Building internam Index for d tile s len inputTiles end T
  • Oracle 的 DBMS_ASSERT 的 Sql Server 等效项是什么?

    数据库管理系统 断言是Oracle中防止SQL注入攻击的关键之一 我尝试了粗略搜索 是否有 SQL Server 2005 2008 等效于此功能 我正在寻找一个特定的实现 它具有 DBMS ASSERT 的所有相应 Oracle 包成员的
  • 如何使用 symfony dom 爬虫将 html 表解析为数组

    我有 html 表 我想从该表创建数组 html table tr td satu td td dua td tr tr td tiga td td empat td tr table 我的数组必须是这样的 array array satu
  • SAPI 或(文本到语音)的同步问题....... C#

    我正在开发一个项目 它将讲述浏览网页的内容 浏览器是我使用 WebControl 制作的 我正在使用 SAPI 作为语音引擎 我想在通过 SpVoice speak 阅读该内容时突出显示网页中的该行 但问题是 如果我以异步方式使用此发言方法
  • 对于已授予所有权限的用户,CREATE 命令被拒绝

    我正在尝试设置 MySQL 复制从属服务器 但运行起来非常困难LOAD DATA FROM MASTER 是的 我知道它已被弃用 但我正在运行 MySQL 5 1 目前这不是我的问题 由于某种原因 MySQL 不断告诉我CREATE命令被拒
  • 如何从 R apply 函数访问全局/外部范围变量?

    我似乎无法使 apply 函数访问 修改在外部声明的变量 给出了什么 x data frame age c 11 12 13 weight c 100 105 110 x testme lt function df i lt 0 apply
  • “类模板已被声明为非类模板”

    嘿我明白了当我离开时出现奇怪的错误namespace sf 后面代码中的声明 1 gt c libraries and headers sfml sfml 1 6 sdk windows vc2008 sfml 1 6 include sf
  • 如何设置本地文件的背景图片url?

    我想将相对图像 url 粘贴到 div 以将其设置为背景图像 不幸的是 div 不会渲染图像 所以这工作正常并渲染图像 img src assets images HeroImg jpg 但这个没有 div style background
  • 如何使用 Angular 2 路由器重新加载当前路由

    我正在使用 Angular 2hashlocation战略 该组件通过该路由加载 departments id employees 到目前为止还好 在成功批量保存多个已编辑的表行后 我想通过以下方式重新加载当前路由 URL this rou
  • 为没有 Cydia 的越狱 iPhone 分发未签名的应用程序 iPhone

    我正在尝试通过 itms services 协议为没有 CYDIA 的越狱设备分发未签名的 ipa 我浏览了有关如何为 cydia 创建未签名应用程序的指南 http www alexwhittemore com developing ja
  • 没有 async void 的即发即忘

    我有三种方法 其中第一个结果将在接下来的两个方法中使用 并且预计不会返回任何数据 result await DataAccess Query param Query await DataAccess Create result await