第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Async await關(guān)鍵字是否等同于ContinueWith lambda?

Async await關(guān)鍵字是否等同于ContinueWith lambda?

C#
開滿天機(jī) 2019-12-26 10:15:16
有人可以請我確認(rèn)我是否正確理解Async await關(guān)鍵字嗎?(使用CTP版本3)到目前為止,我已經(jīng)得出結(jié)論,在方法調(diào)用之前插入await關(guān)鍵字實(shí)際上可以完成兩件事:A。它創(chuàng)建立即返回,B。它創(chuàng)建“繼續(xù)”,在異步方法調(diào)用完成時調(diào)用。無論如何,繼續(xù)是該方法的代碼塊的其余部分。因此,我想知道的是,這兩段代碼在技術(shù)上是否等效,如果是,這是否基本上意味著await關(guān)鍵字與創(chuàng)建ContinueWith Lambda相同(即,它基本上是一個編譯器的快捷方式)?如果沒有,有什么區(qū)別?bool Success =    await new POP3Connector(        "mail.server.com", txtUsername.Text, txtPassword.Text).Connect();// At this point the method will return and following code will// only be invoked when the operation is complete(?)MessageBox.Show(Success ? "Logged In" : "Wrong password");VS(new POP3Connector(    "mail.server.com", txtUsername.Text, txtPassword.Text ).Connect()).ContinueWith((success) =>    MessageBox.Show(success.Result ? "Logged In" : "Wrong password"));
查看完整描述

3 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個贊

總體思路是正確的-該方法的其余部分被制成各種形式的延續(xù)。


在“快速通道”的博客文章有如何的細(xì)節(jié)async/ await編譯器改造工程。


差異,浮現(xiàn)在腦海:


該await關(guān)鍵字還使用“調(diào)度環(huán)境”的概念。調(diào)度上下文是(SynchronizationContext.Current如果存在的話),返回TaskScheduler.Current。然后,繼續(xù)在調(diào)度上下文上運(yùn)行。因此,如果需要的話,可以更近似地傳遞TaskScheduler.FromCurrentSynchronizationContext給ContinueWith,然后再回落TaskScheduler.Current。


實(shí)際async/ await實(shí)現(xiàn)基于模式匹配;它使用“等待”模式,該模式允許等待任務(wù)以外的其他事情。例如WinRT異步API,某些特殊方法(例如YieldRx observables和特殊套接字可等待),它們對GC的影響不那么嚴(yán)重。任務(wù)功能強(qiáng)大,但并不是唯一可以等待的任務(wù)。


還有一點(diǎn)細(xì)微的挑剔的區(qū)別:如果等待已完成,則該async方法實(shí)際上不會在此時返回;它同步地繼續(xù)。因此,這有點(diǎn)像傳遞TaskContinuationOptions.ExecuteSynchronously,但是沒有與堆棧相關(guān)的問題。


查看完整回答
反對 回復(fù) 2019-12-26
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個贊

異步/等待比ContinueWith(...)更具表現(xiàn)力的另一個例子是異常的流動。您可以在同一個try塊中等待多次,對于執(zhí)行的每個階段,可以將它們的異常集中到同一catch(...)塊中,而不必編寫大量的代碼來明確地執(zhí)行此操作。

查看完整回答
反對 回復(fù) 2019-12-26
  • 3 回答
  • 0 關(guān)注
  • 280 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號