有人知道这样做的目的是什么?

  1. private async Task<bool> StoreAsync(TriviaAnswer answer) { ... }
  2. [ResponseType(typeof(TriviaAnswer))]
  3. public async Task<IHttpActionResult> Post(TriviaAnswer answer)
  4. {
  5. var isCorrect = await StoreAsync(answer);
  6. return Ok<bool>(isCorrect);
  7. }

通过检查,它告诉它异步运行私有方法,但同步等待它结束.我的问题是,这有什么意义吗?或者这只是一种奇特而无用的技巧?我在研究Web API / MVC / SPA的一些代码时遇到了这个问题.

无论如何,任何见解都会有用.

解决方法

尽管它的名字,await实际上并没有像Thread.Join那样工作. async和await是Microsoft的 coroutines实现,使用Continuation Passing Style实现.对工作进行重新排序,以便在任务< T>时可以继续处理.正在完成.编译器重新安排指令以最大限度地利用异步操作.

This article因此解释:

await表达式不会阻止它正在执行的线程.相反,它会导致编译器将其余的异步方法注册为等待任务的延续.然后,Control返回到异步方法的调用者.当任务完成时,它会调用它的继续,异步方法的执行从它停止的地方恢复.

对于一些简单的代码示例,await并没有多大意义,因为在您等待的同时,您无法做其他工作.

【转】WebApi中的C#await / async,重点是什么?相关推荐

  1. @async 默认线程池_.NET Web应用中为什么要使用async/await异步编程?

    布莱恩特:.NET Core开发精选文章目录,持续更新,欢迎投稿!​zhuanlan.zhihu.com 前言 1.什么是async/await? await和async是.NET Framework ...

  2. 同步方法 调用异步防范_.NET Web应用中为什么要使用async/await异步编程?

    布莱恩特:.NET Core开发精选文章目录,持续更新,欢迎投稿!​zhuanlan.zhihu.com 前言 1.什么是async/await? await和async是.NET Framework ...

  3. 异步编程中的最佳做法(Async/Await) --转

    近日来,涌现了许多关于 Microsoft .NET Framework 4.5 中新增了对 async 和 await 支持的信息. 本文旨在作为学习异步编程的"第二步":我假设 ...

  4. ES6中的promise、async、await用法详解

    <!DOCTYPE html> <html> <head><title>Promise.async.await</title> </h ...

  5. C#中await/async闲说

    自从C#5.0增加异步编程之后,异步编程越来越简单,async和await用的地方越来越多,越来越好用,只要用异步的地方都是一连串的异步,如果想要异步编程的时候,需要从底层开始编写,这样后边使用的时候 ...

  6. promise 的基本概念 和如何解决js中的异步编程问题 对 promis 的 then all ctch 的分析 和 await async 的理解

    * promise承诺 * 解决js中异步编程的问题 * * 异步-同步 * 阻塞-无阻塞 * * 同步和异步的区别? 异步;同步 指的是被请求者 解析:被请求者(该事情的处理者)在处理完事情的时候的 ...

  7. Winform宿主Asp.Net WebApi中Owin 自定义Token请求参数

    本文介绍的是Winform宿主Asp.net WebAPI的过程,利用了Microsoft.AspNet.WebApi.OwinSelfHost. Asp.NET WebAPI中的授权验证有很多: 例 ...

  8. 使用await / async时,HttpClient.GetAsync(...)永远不会返回

    本文翻译自:HttpClient.GetAsync(-) never returns when using await/async Edit: This question looks like it ...

  9. webapi中的模型验证

    mic: https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/model-valida ...

最新文章

  1. android 汉字编码,Android解压中文乱码
  2. Codeforces Beta Round #12 (Div 2 Only)【未完结】
  3. FLASK上传时有中文文件名的解决方案
  4. SAP CRM系统UI checkbox的设计与实现
  5. 使用PerfView监测.NET程序性能(一):Event Trace for Windows
  6. linux c的连接库和怎么同时编译多个源程序
  7. 获取http请求标头_HTTP请求和标头参数的CDI拦截器–简单示例
  8. 前端学习(2768):上拉加载
  9. 刘强东卸任京东集团CEO!接任人是他...
  10. linux 过滤某种类型文件,linux mv 类型过滤
  11. 华为三层交换机之基本操作
  12. AutoCAD 2008中文版实用自学手册•机械设计篇
  13. Eclipse创建JSON文件及其他操作
  14. 计算机专业电路基础高考试卷,计算机专业电路基础试题(4页)-原创力文档
  15. 【程序】Xilinx FPGA将DDR3内存转换为W25Q256的SPI接口,供STM32单片机调用,产生容量为256MB的USB U盘设备
  16. mujoco win7下载安装
  17. LWN:滚动发布的稳定版内核!
  18. 单位公司年会团拜会抽奖软件程序
  19. 电商平台后台管理系统--->操作方法说明
  20. Excel引用外部数据链接地址修改/引用地址修改/公式更改

热门文章

  1. 高效、稳定开发功能的一些心得
  2. Newtonsoft.Json反序列化(Deserialize)出错:Bad JSON escape sequence
  3. Python基础—08-函数使用(02)
  4. 洛谷P3628 [APIO2010]特别行动队(斜率优化)
  5. [kafka]kafka集群实践
  6. JulyNovel-React
  7. POJ 1189 钉子和小球
  8. T7-Dropout 解决 overfitting 过拟合
  9. iOS开发——高级篇——二维码的生产和读取
  10. Noip 2014酱油记+简要题解