【转】WebApi中的C#await / async,重点是什么?
有人知道这样做的目的是什么?
- private async Task<bool> StoreAsync(TriviaAnswer answer) { ... }
- [ResponseType(typeof(TriviaAnswer))]
- public async Task<IHttpActionResult> Post(TriviaAnswer answer)
- {
- var isCorrect = await StoreAsync(answer);
- return Ok<bool>(isCorrect);
- }
通过检查,它告诉它异步运行私有方法,但同步等待它结束.我的问题是,这有什么意义吗?或者这只是一种奇特而无用的技巧?我在研究Web API / MVC / SPA的一些代码时遇到了这个问题.
无论如何,任何见解都会有用.
解决方法
尽管它的名字,await实际上并没有像Thread.Join那样工作. async和await是Microsoft的 coroutines实现,使用Continuation Passing Style实现.对工作进行重新排序,以便在任务< T>时可以继续处理.正在完成.编译器重新安排指令以最大限度地利用异步操作.
This article因此解释:
await表达式不会阻止它正在执行的线程.相反,它会导致编译器将其余的异步方法注册为等待任务的延续.然后,Control返回到异步方法的调用者.当任务完成时,它会调用它的继续,异步方法的执行从它停止的地方恢复.
对于一些简单的代码示例,await并没有多大意义,因为在您等待的同时,您无法做其他工作.
【转】WebApi中的C#await / async,重点是什么?相关推荐
- @async 默认线程池_.NET Web应用中为什么要使用async/await异步编程?
布莱恩特:.NET Core开发精选文章目录,持续更新,欢迎投稿!zhuanlan.zhihu.com 前言 1.什么是async/await? await和async是.NET Framework ...
- 同步方法 调用异步防范_.NET Web应用中为什么要使用async/await异步编程?
布莱恩特:.NET Core开发精选文章目录,持续更新,欢迎投稿!zhuanlan.zhihu.com 前言 1.什么是async/await? await和async是.NET Framework ...
- 异步编程中的最佳做法(Async/Await) --转
近日来,涌现了许多关于 Microsoft .NET Framework 4.5 中新增了对 async 和 await 支持的信息. 本文旨在作为学习异步编程的"第二步":我假设 ...
- ES6中的promise、async、await用法详解
<!DOCTYPE html> <html> <head><title>Promise.async.await</title> </h ...
- C#中await/async闲说
自从C#5.0增加异步编程之后,异步编程越来越简单,async和await用的地方越来越多,越来越好用,只要用异步的地方都是一连串的异步,如果想要异步编程的时候,需要从底层开始编写,这样后边使用的时候 ...
- promise 的基本概念 和如何解决js中的异步编程问题 对 promis 的 then all ctch 的分析 和 await async 的理解
* promise承诺 * 解决js中异步编程的问题 * * 异步-同步 * 阻塞-无阻塞 * * 同步和异步的区别? 异步;同步 指的是被请求者 解析:被请求者(该事情的处理者)在处理完事情的时候的 ...
- Winform宿主Asp.Net WebApi中Owin 自定义Token请求参数
本文介绍的是Winform宿主Asp.net WebAPI的过程,利用了Microsoft.AspNet.WebApi.OwinSelfHost. Asp.NET WebAPI中的授权验证有很多: 例 ...
- 使用await / async时,HttpClient.GetAsync(...)永远不会返回
本文翻译自:HttpClient.GetAsync(-) never returns when using await/async Edit: This question looks like it ...
- webapi中的模型验证
mic: https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/model-valida ...
最新文章
- android 汉字编码,Android解压中文乱码
- Codeforces Beta Round #12 (Div 2 Only)【未完结】
- FLASK上传时有中文文件名的解决方案
- SAP CRM系统UI checkbox的设计与实现
- 使用PerfView监测.NET程序性能(一):Event Trace for Windows
- linux c的连接库和怎么同时编译多个源程序
- 获取http请求标头_HTTP请求和标头参数的CDI拦截器–简单示例
- 前端学习(2768):上拉加载
- 刘强东卸任京东集团CEO!接任人是他...
- linux 过滤某种类型文件,linux mv 类型过滤
- 华为三层交换机之基本操作
- AutoCAD 2008中文版实用自学手册•机械设计篇
- Eclipse创建JSON文件及其他操作
- 计算机专业电路基础高考试卷,计算机专业电路基础试题(4页)-原创力文档
- 【程序】Xilinx FPGA将DDR3内存转换为W25Q256的SPI接口,供STM32单片机调用,产生容量为256MB的USB U盘设备
- mujoco win7下载安装
- LWN:滚动发布的稳定版内核!
- 单位公司年会团拜会抽奖软件程序
- 电商平台后台管理系统--->操作方法说明
- Excel引用外部数据链接地址修改/引用地址修改/公式更改