我有三种方法,其中第一个结果将在接下来的两个方法中使用,并且预计不会返回任何数据。
result= await DataAccess.Query(param); //Query
await DataAccess.Create(result);
await DataAccess.Update(result);
我真的需要在这里使用await吗?
使用 async void 是否正确
在创建和更新功能中?
- 正确的做法是什么
着火了却忘了这里?
- 如果我不提异步会火吗
忘记了?
- 没有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(使用前将#替换为@)