淺談async、await關(guān)鍵字 => 深談async、await關(guān)鍵字

前言

之前寫(xiě)過(guò)有關(guān)異步的文章,對(duì)這方面一直比較弱,感覺(jué)還是不太理解,于是會(huì)花點(diǎn)時(shí)間去好好學(xué)習(xí)這一塊,我們由淺入深,文中若有敘述不穩(wěn)妥之處,還請(qǐng)批評(píng)指正。

話題

(1)是不是將方法用async關(guān)鍵字標(biāo)識(shí)就是異步方法了呢?

(2)是不是沒(méi)有await關(guān)鍵字的存在async就沒(méi)有存在的意義了呢?

(3)用異步方法的條件是什么呢,為什么會(huì)有這個(gè)條件限制?

(4)只能調(diào)用.NET Framework內(nèi)置的用await標(biāo)識(shí)的Task,能否自定義實(shí)現(xiàn)呢?

(5)在lambda表達(dá)式中是否可以用async和await關(guān)鍵字來(lái)實(shí)現(xiàn)異步呢(即異步lambda表達(dá)式)?

上述拋出這幾個(gè)話題,明白本文主要講述的話題以及需要深入了解的知識(shí)。

注意:這里我將參照?qǐng)@友【反骨仔的文章進(jìn)行進(jìn)一步解析。

async關(guān)鍵字

例如異步方法是這樣的: