如何進(jìn)行Task.CompletedTask和Task.Result分析,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
成都創(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ò)營銷,網(wǎng)絡(luò)優(yōu)化,平昌網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
例如,定義了一個(gè)返回Task的接口方法,但是在實(shí)現(xiàn)中,并沒有特別耗時(shí)的代碼。
public interface IComputer { Task Do(); Task<string> DoString();}
一般我們會(huì)這樣實(shí)現(xiàn)。即使實(shí)現(xiàn)中代碼很簡短。
public class Computer : IComputer { public Task Do() { return Task.Run(() => { //邏輯代碼 }); } public Task<string> DoString() { return Task.Run( () => { //邏輯代碼 return "aaa"; }); }}
實(shí)際上,Task類上面有兩個(gè)幫助程序,,這些幫助程序讓代碼更具可讀性,并且所需的運(yùn)行時(shí)開銷更少。
對(duì)于上述接口實(shí)現(xiàn)中的 Do方法,我更愿意使用Task.CompletedTask。
public Task Do() { //邏輯代碼 return Task.CompletedTask; }
我們看一下CompletedTask的定義
/// <summary>Gets a task that has already completed successfully.</summary>/// <returns>The successfully completed task.</returns>public static Task CompletedTask { get; }
如果返回Task <T>怎么辦?在這種情況下,如果您已經(jīng)有了答案,請(qǐng)使用Task.FromResult包裝答案。
public Task<string> DoString() { //邏輯代碼 return Task.FromResult("aaa");}
看一下FromResult的定義
/// <summary>Creates a <see cref="T:System.Threading.Tasks.Task`1" /> that's completed successfully with the specified result.</summary>/// <param name="result">The result to store into the completed task.</param>/// <typeparam name="TResult">The type of the result returned by the task.</typeparam>/// <returns>The successfully completed task.</returns>public static Task<TResult> FromResult<[Nullable(2)] TResult>(TResult result);
通過上述的改變,即實(shí)現(xiàn)了接口的實(shí)現(xiàn),也減少了Task.Run調(diào)用的系統(tǒng)開銷。
看完上述內(nèi)容,你們掌握如何進(jìn)行Task.CompletedTask和Task.Result分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
文章名稱:如何進(jìn)行Task.CompletedTask和Task.Result分析
分享網(wǎng)址:http://jinyejixie.com/article40/jjjheo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、小程序開發(fā)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站營銷、移動(dòng)網(wǎng)站建設(shè)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)