【转】WebApi中的C#await / async,重点是什么?
有人知道這樣做的目的是什么?
通過檢查,它告訴它異步運(yùn)行私有方法,但同步等待它結(jié)束.我的問題是,這有什么意義嗎?或者這只是一種奇特而無用的技巧?我在研究Web API / MVC / SPA的一些代碼時(shí)遇到了這個(gè)問題.
無論如何,任何見解都會(huì)有用.
解決方法
盡管它的名字,await實(shí)際上并沒有像Thread.Join那樣工作. async和await是Microsoft的?coroutines實(shí)現(xiàn),使用Continuation Passing Style實(shí)現(xiàn).對(duì)工作進(jìn)行重新排序,以便在任務(wù)< T>時(shí)可以繼續(xù)處理.正在完成.編譯器重新安排指令以最大限度地利用異步操作.
This article因此解釋:
await表達(dá)式不會(huì)阻止它正在執(zhí)行的線程.相反,它會(huì)導(dǎo)致編譯器將其余的異步方法注冊(cè)為等待任務(wù)的延續(xù).然后,Control返回到異步方法的調(diào)用者.當(dāng)任務(wù)完成時(shí),它會(huì)調(diào)用它的繼續(xù),異步方法的執(zhí)行從它停止的地方恢復(fù).
對(duì)于一些簡(jiǎn)單的代碼示例,await并沒有多大意義,因?yàn)樵谀却耐瑫r(shí),您無法做其他工作.
總結(jié)
以上是生活随笔為你收集整理的【转】WebApi中的C#await / async,重点是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯下架QQ影音所有版本:曾被暴风公司排
- 下一篇: 【转】!C#中的Stream相关