真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何進(jìn)行Task.CompletedTask和Task.Result分析

如何進(jìn)行Task.CompletedTask和Task.Result分析,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),平昌企業(yè)網(wǎng)站建設(shè),平昌品牌網(wǎng)站建設(shè),網(wǎng)站定制,平昌網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,平昌網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

在任何返回Task的方法中,如果可以在不進(jìn)行異步的情況下計(jì)算結(jié)果,則最好避免使用Task.Run。例如,一個(gè)簡(jiǎn)短的計(jì)算函數(shù),或者測(cè)試中返回了一個(gè)預(yù)先計(jì)算過(guò)的結(jié)果,則無(wú)需使用Task.Run。

例如,定義了一個(gè)返回Task的接口方法,但是在實(shí)現(xiàn)中,并沒(méi)有特別耗時(shí)的代碼。

public interface IComputer    {        Task Do();    Task DoString();}
一般我們會(huì)這樣實(shí)現(xiàn)。即使實(shí)現(xiàn)中代碼很簡(jiǎn)短。
public class Computer : IComputer    {        public Task Do()        {          return Task.Run(() => {            //邏輯代碼         });    }    public Task DoString()            {                return Task.Run( () => {        //邏輯代碼 return "aaa";        });     }}
實(shí)際上,Task類(lèi)上面有兩個(gè)幫助程序,,這些幫助程序讓代碼更具可讀性,并且所需的運(yùn)行時(shí)開(kāi)銷(xiāo)更少。

對(duì)于上述接口實(shí)現(xiàn)中的 Do方法,我更愿意使用Task.CompletedTask。

public Task Do()        {                    //邏輯代碼        return Task.CompletedTask;    }

我們看一下CompletedTask的定義

/// Gets a task that has already completed successfully./// The successfully completed task.public static Task CompletedTask { get; }

如果返回Task 怎么辦?在這種情況下,如果您已經(jīng)有了答案,請(qǐng)使用Task.FromResult包裝答案。

public Task DoString() {    //邏輯代碼    return Task.FromResult("aaa");}

看一下FromResult的定義

/// Creates a  that's completed successfully with the specified result./// The result to store into the completed task./// The type of the result returned by the task./// The successfully completed task.public static Task FromResult<[Nullable(2)] TResult>(TResult result);

通過(guò)上述的改變,即實(shí)現(xiàn)了接口的實(shí)現(xiàn),也減少了Task.Run調(diào)用的系統(tǒng)開(kāi)銷(xiāo)。

看完上述內(nèi)容,你們掌握如何進(jìn)行Task.CompletedTask和Task.Result分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


當(dāng)前標(biāo)題:如何進(jìn)行Task.CompletedTask和Task.Result分析
本文來(lái)源:http://weahome.cn/article/jjjheo.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部